Connection Management Service

ABSTRACT

Concepts and technologies are disclosed herein for connection management service. A server computer can detect a request to create a connection between a first resource and a second resource. The first resource can be in a proximity of a computing device and the second resource may not be in a proximity of the computing device. The request can be triggered by a requestor. Authentication of the requestor can be triggered, and identification of the first resource can be obtained. The identification of the first resource can be obtained from the computing device. Connection information for the connection between the first resource and the second resource can be obtained and creation of the connection using the connection information can be triggered.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 16/515,252, entitled “Connection ManagementService,” filed Jul. 18, 2019, now allowed, which is incorporated hereinby reference in its entirety.

BACKGROUND

The number of devices and services, both physical and virtual, that areavailable today (aka “resources”) is growing at an exponential rate.These resources can have a variety of standard common “aspects,” as wellas unique aspects. Due to the proliferation of these and other devices,the possible permutations of connecting one or more aspects of theseresources to another (or to themselves) are exponentially increasing.

Once a desired connection is identified for a particular resource, theconfiguration of such a connection can be complex. In particular, agreat deal of information may be needed to connect resource aspectstogether. The information may or may not be documented, but at any rateoften must be determined through trial and error and may requireengagement of a trained person who can create the desired connection.

Furthermore, connecting some resources may require implicit or explicitauthority, which may be missing in some situations. Also, suchconnections may require resource-specific authorization, the obtainingof which may delay creating desired connections.

SUMMARY

The present disclosure is directed to connection management service. Auser or other entity can activate a connection management applicationexecuted by a computing device. The connection management applicationcan be configured to create and/or to manage a connection between tworesources. In some embodiments, the computing device itself can be oneof the resources and therefore can be connected to another resourceusing the connection management application, if desired. The connectionmanagement application, the connection management service, and/or thecomputing device can authenticate the user or other entity (or requestauthentication from other devices such as an authentication,authorization, and accounting (“AAA”) server or service). Onceauthenticated, the connection management application can prompt the userfor information identifying one or more of the resources that are to beconnected. The connection management application can be used to scan orotherwise obtain an identifier associated with a first resource of theresources, and the connection management service can obtain a resourceidentifier associated with the second resource of the resources. Theresource identifier can be obtained, in various embodiments, from theuser, from the server computer, from other devices, and/or in othermanners.

Via exchanging data with the server computer, the connection managementapplication can communicate to the connection management service theidentities of one or more of the resources that are to be connectedand/or can communicate to the connection management service a particularconnection that is to be created between the resources. The connectionmanagement service can access connection data that provides operationsto be performed to create the desired connection. The connectionmanagement service can be configured to perform one or more of theoperations and/or to request performance of one or more of theoperations by other entities to create the connection. Information thatdescribes connections associated with the user and/or the computingdevice can be stored by the connection management service and can beused for various purposes. The connection can be enabled, and theresources can exchange data via the connection for various purposes. Invarious embodiments, the information that describes the variousconnections associated with a user or the computing device can becommunicated to the computing device by the connection managementservice to enable management (viewing, changing, deleting, enabling,and/or disabling) of the connections.

According to one aspect of the concepts and technologies disclosedherein, a system is disclosed. The system can include a processor and amemory. The memory can store computer-executable instructions that, whenexecuted by the processor, cause the processor to perform operations.The operations can include detecting a request to create a connectionbetween a first resource and a second resource. The first resource canbe in a proximity of a computing device. The second resource may not bein a proximity of the computing device (e.g., may be outside of theproximity of the computing device). The request can be triggered by arequestor, and the requestor can be authenticated. The operations alsocan include obtaining identification of the first resource, where theidentification of the first resource can be obtained from the computingdevice. The operations also can include obtaining connection informationfor the connection between the first resource and the second resource,and triggering creation of the connection using the connectioninformation.

In some embodiments, the identification of the first resource can beobtained by a camera of the computing device. In some embodiments, theidentification of the second resource can include a globally uniqueidentifier, where the identification of the second resource can beobtained from the computing device. In some embodiments, the requestorcan be authenticated by the processor based on identificationinformation obtained from the computing device. In some embodiments,triggering creation of the connection can include negotiating a mostsecure connection available between the first resource and the secondresource.

In some embodiments, the computer-executable instructions, when executedby the processor, can cause the processor to perform operations furtherincluding detecting a failure in the creation of the connection; andengaging a third party to complete the connection. In some embodiments,the computer-executable instructions, when executed by the processor,can cause the processor to perform operations further includingdetecting a failure in the creation of the connection; and sendingstep-by-step instructions to the computing device to complete theconnection. In some embodiments, the first resource and the secondresource can exchange data via the connection.

According to another aspect, a method is disclosed. The method caninclude detecting, at a server computer including a processor, a requestto create a connection between a first resource and a second resource.The first resource can be in a proximity of a computing device, and thesecond resource may not be in a proximity of the computing device (e.g.,can be outside the proximity of the computing device). The request canbe triggered by a requestor, and the requestor can be authenticated. Themethod also can include obtaining, by the processor, identification ofthe first resource, where the identification of the first resource canbe obtained from the computing device; obtaining, by the processor,connection information for the connection between the first resource andthe second resource; and triggering, by the processor, creation of theconnection using the connection information.

In some embodiments, the identification of the first resource can beobtained by a camera of the computing device. In some embodiments, theidentification of the second resource can include a globally uniqueidentifier, where the identification of the second resource can beobtained from the computing device. In some embodiments, triggeringcreation of the connection can include negotiating a most secureconnection available between the first resource and the second resource.In some embodiments, the method further can include detecting a failurein the creation of the connection; and engaging a third party tocomplete the connection. In some embodiments, the method further caninclude detecting a failure in the creation of the connection; andsending step-by-step instructions to the computing device to completethe connection.

According to yet another aspect of the concepts and technologiesdisclosed herein, a computer storage medium is disclosed. The computerstorage medium can store computer-executable instructions that, whenexecuted by a processor, cause the processor to perform operations. Theoperations can include detecting a request to create a connectionbetween a first resource and a second resource. The first resource canbe in a proximity of a computing device. The second resource may not bein a proximity of the computing device (e.g., may be outside of theproximity of the computing device). The request can be triggered by arequestor, and the requestor can be authenticated. The operations alsocan include obtaining identification of the first resource, where theidentification of the first resource can be obtained from the computingdevice. The operations also can include obtaining connection informationfor the connection between the first resource and the second resource,and triggering creation of the connection using the connectioninformation.

In some embodiments, the identification of the first resource can beobtained by a camera of the computing device. In some embodiments, theidentification of the second resource can include a globally uniqueidentifier, where the identification of the second resource can beobtained from the computing device. In some embodiments, triggeringcreation of the connection can include negotiating a most secureconnection available between the first resource and the second resource.

In some embodiments, the computer-executable instructions, when executedby the processor, can cause the processor to perform operations furtherincluding detecting a failure in the creation of the connection; andengaging a third party to complete the connection. In some embodiments,the computer-executable instructions, when executed by the processor,can cause the processor to perform operations further includingdetecting a failure in the creation of the connection; and sendingstep-by-step instructions to the computing device to complete theconnection.

Other systems, methods, and/or computer program products according toembodiments will be or become apparent to one with skill in the art uponreview of the following drawings and detailed description. It isintended that all such additional systems, methods, and/or computerprogram products be included within this description and be within thescope of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system diagram illustrating an illustrative operatingenvironment for various embodiments of the concepts and technologiesdescribed herein.

FIG. 2 is a flow diagram showing aspects of a method for creating aconnection via interactions with a connection management service,according to an illustrative embodiment of the concepts and technologiesdescribed herein.

FIG. 3 is a flow diagram showing aspects of a method for creating aconnection by a connection management service, according to anillustrative embodiment of the concepts and technologies describedherein.

FIGS. 4A-4G are user interface diagrams showing various screen displaysfor interacting with a connection management service, according to someillustrative embodiments of the concepts and technologies describedherein.

FIG. 5 schematically illustrates a network, according to an illustrativeembodiment of the concepts and technologies described herein.

FIG. 6 is a block diagram illustrating an example computer systemconfigured to provide and/or interact with a connection managementservice, according to some illustrative embodiments of the concepts andtechnologies described herein.

FIG. 7 is a block diagram illustrating an example mobile deviceconfigured to interact with a connection management service, accordingto some illustrative embodiments of the concepts and technologiesdescribed herein.

FIG. 8 is a diagram illustrating a computing environment capable ofimplementing aspects of the concepts and technologies disclosed herein,according to some illustrative embodiments of the concepts andtechnologies described herein.

DETAILED DESCRIPTION

The following detailed description is directed to connection managementservice. A user or other entity can activate a connection managementapplication executed by a computing device. The connection managementapplication can be configured to create and/or to manage a connectionbetween two resources. In some embodiments, the computing device itselfcan be one of the resources and therefore can be connected to anotherresource using the connection management application, if desired. Theconnection management application, the connection management service,and/or the computing device can authenticate the user or other entity(or request authentication from other devices such as an AAA server orservice). Once authenticated, the connection management application canprompt the user for information identifying one or more of the resourcesthat are to be connected. The connection management application can beused to scan or otherwise obtain an identifier associated with a firstresource of the resources, and the connection management service canobtain a resource identifier associated with the second resource of theresources. The resource identifier can be obtained, in variousembodiments, from the user, from the server computer, from otherdevices, and/or in other manners.

Via exchanging data with the server computer, the connection managementapplication can communicate to the connection management service theidentities of one or more of the resources that are to be connectedand/or can communicate to the connection management service a particularconnection that is to be created between the resources. The connectionmanagement service can access connection data that provides operationsto be performed to create the desired connection. The connectionmanagement service can be configured to perform one or more of theoperations and/or to request performance of one or more of theoperations by other entities to create the connection. Information thatdescribes connections associated with the user and/or the computingdevice can be stored by the connection management service and can beused for various purposes. The connection can be enabled, and theresources can exchange data via the connection for various purposes. Invarious embodiments, the information that describes the variousconnections associated with a user or the computing device can becommunicated to the computing device by the connection managementservice to enable management (viewing, changing, deleting, enabling,and/or disabling) of the connections.

While the subject matter described herein is presented in the generalcontext of program modules that execute in conjunction with theexecution of an operating system and application programs on a computersystem, those skilled in the art will recognize that otherimplementations may be performed in combination with other types ofprogram modules. Generally, program modules include routines, programs,components, data structures, and other types of structures that performparticular tasks or implement particular abstract data types. Moreover,those skilled in the art will appreciate that the subject matterdescribed herein may be practiced with other computer systemconfigurations, including hand-held devices, multiprocessor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, and the like.

Referring now to FIG. 1, aspects of an operating environment 100 forvarious embodiments of the concepts and technologies disclosed hereinfor connection management service will be described, according to anillustrative embodiment. The operating environment 100 shown in FIG. 1can include a computing device 102. As shown in FIG. 1, the computingdevice 102 can operate in communication with and/or as part of acommunications network (“network”) 104, though this is not necessarilythe case.

According to various embodiments, the functionality of the computingdevice 102 may be provided by one or more server computers, desktopcomputers, mobile telephones, smartphones, laptop computers, tabletcomputers, set-top boxes, gateway devices, other computing systems, andthe like. It should be understood that the functionality of thecomputing device 102 can be provided by a single device, by two or moresimilar devices, and/or by two or more dissimilar devices. For purposesof describing the concepts and technologies disclosed herein, thecomputing device 102 is described herein as a mobile telephone. Becausethis example is used to illustrate the concepts and technologiesdisclosed herein, it should be understood that this specific embodimentis illustrative, and therefore should not be construed as being limitingof the concepts and technologies disclosed herein in any way.

The computing device 102 can execute an operating system (“OS”) 106 andone or more application programs such as, for example, a connectionmanagement application 108. The operating system 106 is a computerprogram for controlling the operation of the computing device 102. Theapplication programs including the connection management application 108can include executable programs that are configured to execute on top ofthe operating system 106 to provide various functions as illustrated anddescribed herein. While only a connection management application 108 isshown in FIG. 1, it can be appreciated that various functionalityillustrated and described herein can be performed and/or provided bymultiple application programs. Similarly, it should be understood thatvarious functions of the connection management application 108illustrated and described herein can be performed by other applicationprograms without departing from the scope of this disclosure. As such,the illustrated embodiment is illustrative of one contemplatedembodiment and should not be construed as being limiting in any way.

The connection management application 108 can be configured to enable auser or other entity to interact with a connection management service110. The connection management service 110 can include a service,application, or other functionality that can be hosted, stored, and/orexecuted by a processing component such as a processor of a computingdevice such as a server computer 112. In some embodiments, theconnection management service 110 can include a distributed applicationthat can be hosted in a cloud environment (e.g., a data center), and assuch the illustrated embodiment must be understood as being merelyillustrative of one contemplated embodiment and should not be construedas being limiting in any way.

As will be explained in more detail below, the connection managementservice 110 can be configured to access connection data 114. Theconnection data 114 can be stored or hosted by the server computer 112,in some embodiments, or can be stored by another device or functionality(not shown in FIG. 1) such as one or more real or virtual data stores,databases, server computers, desktop computers, mobile telephones,laptop computers, other computing systems, and the like. The connectiondata 114 can include various types of information, which will beexplained in more detail below, once the various elements of theoperating environment 100 are introduced. According to variousembodiments of the concepts and technologies disclosed herein, thecomputing device 102 can exchange connection management data 116 withthe connection management service 110 to create and/or manageconnections between one or more other devices, hardware, services,applications, or other resources (hereinafter “resources”).

In particular, the operating environment 100 can includes two or moreresources 118A-N (hereinafter collectively and/or generically referredto as “resources 118”). As will be explained in more detail herein, theconnection management service 110 can be configured to create and/ormanage an authorized and secure connection between two or more resources118.

The resources 118 can include almost any type of application, service,device, or other resource including, but not limited to, gamingconsoles; set-top boxes (“STBs”); set-top units (“STUs”); other customerpremises equipment or customer provided equipment (“CPE”); servercomputers (e.g., game servers, application servers, web servers, etc.);gateway devices; connected home devices such as appliances, alarmsystems, alarm system components, and/or other devices or components;computing devices such as tablets, personal computers, mobiletelephones, laptops, or other devices; display devices such as monitors,televisions, or other devices; cable, satellite, or internet videodevices (e.g., receivers, recorders, routers, or the like); networkingdevices (e.g., modems, routers, switches, or the like); other devices;an application; a service; combinations thereof; or the like. As will beclearer from the description herein, the resources 118 can includealmost any device, component, and/or other form of hardware, and assuch, the various examples provided herein are illustrative only andshould not be construed as being limiting in any way.

As shown in FIG. 1, the resources 118 can include one or moreapplication programs (“applications”) 120 and one or more instances ofdata 122. Resources 118 can include processors and memories (not shownin FIG. 1), and the processors can execute the applications 120 and usethe data 122 to provide various functionality. By way of example, theresource 118A can correspond to a gaming console, in which case theapplication 120 can provide gaming functionality using the data 122. Itshould be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

According to various embodiments of the concepts and technologiesdisclosed herein, one or more of the resources 118 can include anidentifier 124. According to various embodiments, the identifier 124 caninclude a visual identifier or visual indicia such as one or more barcodes, universal product code (“UPC”) identifiers, or other identifiers.The identifier 124 also can include one or more two-dimensionalidentifiers such as quick response codes (“QR codes”), MAXICODE, a DATAMATRIX, an EZCODE, an AZTEC code, a CODABLOCK barcode, and/or othermatrix barcodes; various multicolor codes such as a HIGH CAPACITY COLORBARCODE and/or a HUECODE; combinations thereof; or the like. In someother embodiments, the identifier 124 can include a device or otherhardware that can be configured to store and/or transmit identifyinginformation such as a radio frequency identification (“RFID”) tag orlabel, a near-field communication (“NFC”) tab or label, and/or otherdevices or combinations thereof (e.g., a memory in communication with aWiFi chip) for storing and/or transmitting identification information toother devices (e.g., the computing device 102) in a proximity of theresource 118. Because the identifier 124 can include additional and/oralternative types of indicia, it should be understood that theseembodiments are illustrative, and should not be construed as beinglimiting in any way.

In various embodiments, one or more of the resources 118 can beconfigured to transmit the identifier 124 only to a device in aproximity 126 of the resources 118, and as such. In the illustratedembodiment, for example, the resource 118A can be configured to provideidentifying information only in a proximity 126 thereof and thereforecan include visual indicia and/or a short-range device such as an RFIDtag, NFC tag, or the like. According to various embodiments of theconcepts and technologies disclosed herein, and in the claims unlessotherwise noted, the first resource 118 can be in the proximity 126 ofthe computing device 102 (or the computing device 102 can be in theproximity 126 of the first resource 118), while the second resource 118(to which the first resource 118 is being connected) is not in theproximity 126 of the computing device 102 or the first resource 118. Itshould be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

As shown in FIG. 1, one or more of the resources 118 can include aresource identifier 128. In some embodiments, the resource identifier128 can include visual indicia that can be similar to, dissimilar to, oridentical to the identifier 124. In some other embodiments, includingthe embodiment shown in FIG. 1, the resource identifier 128 can includeidentifying information in a digital format such as a data file thatrepresents identifying information for the resource. In variousembodiments, the resource identifier 128 can represent, for example, amedia access control (“MAC”) address for the resource 118, an Internetprotocol (“IP”) address of the resource 118, an international mobileequipment identity (“MEI”) or international mobile subscriber identity(“IMSI”) associated with the resource 118, a character string (e.g., aglobally unique identifier (“GUID”), a hash value, or other characters)that can identify the resource 118, other identifiers, combinationsthereof, or the like. For purposes of illustrating and describing theconcepts and technologies disclosed herein, the resource identifier 128will be described herein as data that identifies the resource 118N. Itshould be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

Returning now to the computing device 102, various embodiments for usingthe operating environment 100 to create and/or manage connectionsbetween resources 118 will be described in detail, according to oneillustrative embodiment. The computing device 102 can execute theconnection management application 108 to create and/or manage a secureand manageable connection (“connection”) 130 between two or moreresources 118. According to various embodiments, a user or other entity(“user”) 132 can activate or launch the connection managementapplication 108 to create or manage the connection 130. According tovarious embodiments, the connection management application 108 can beconfigured to authenticate the user 132 (or otherwise triggerauthentication of the user 132 by the connection management application108, the connection management service 110, and/or by one or more otherentities) upon launch of the connection management application 108.According to various embodiments, the connection management application108 can exchange authentication information with the server computer 112as part of the connection management data 116 that is exchanged (two waycommunications) between the computing device 102 and server computer112, though this is not necessarily the case. As will be more clear fromthe below description, the connection management service 110 can beconfigured to enable connections 130 between resources 118 only to theextent such connections 130 are authorized for the user 132 that isrequesting the connection 130. This will be explained in more detailbelow.

In some embodiments, either before or after authentication of the user132, the connection management application 108 can be configured toprompt the user 132 for various types of information including, but notlimited to, information indicating if the user 132 wishes to create anew connection 130 or manage an existing connection 130, informationrelating to resources 118 between which the connection 130 is desired,information defining the connection 130 and/or the operation thereof,and/or other information as will be illustrated and described herein,particularly with reference to FIGS. 4A-4G. In various embodiments, theinteractions between the connection management application 108 and theuser 132 can occur via a user interface (“UI”) 134, though this is notnecessarily the case.

The connection management application 108 can obtain information thatidentifies a first resource 118 that is to be connected to anotherresource 118. In the context of the example operating environment 100shown in FIG. 1, the connection management application 108 can obtainthe information that identifies the resource 118A by way of interactingwith the identifier 124. In the example embodiment shown in FIG. 1, theidentifier 124 can include visual indicia and therefore the connectionmanagement application 108 can obtain the information by way of scanninga bar code or other visual indicia, receiving keystrokes or other inputcorresponding to an identifier, receiving a transmission from an RFID orNFC tag, label, or device, or the like. In some embodiments, theconnection management application 108 can be configured to obtainidentifying information for each of the two or more resources 118 thatare being connected (or whose connection 130 is being managed).

In some other embodiments, the connection management application 108 cansend identifying information to the connection management service 110,and the connection management service 110 can determine, for aparticular resource 118, what connections 130 are available for theidentified resource 118 and user 132 (e.g., the connection managementservice 110 can determine what connections 130 the user 132 isauthorized to create for the resource 118 and what connections 130 arecapable of being supported by various network resources). It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

Thus, the connection management application 108 can identify a secondresource 118 (e.g., a resource 118 that is being connected to) byinteracting with the connection management service 110 and/or byinteracting with the user 132. In some embodiments, the connectionmanagement application 108 can send, to the server computer 112, dataobtained from the identifier 124 (e.g., as part of the connectionmanagement data 116 shown in FIG. 1). The computing device 102 canreceive, from the server computer 112, identifying information for thesecond resource 118 and/or one or more connection options, which canspecify connections that are available to the user 132 for the specificresource identified by the identifying information sent by theconnection management application 108. The identifying informationand/or the connection options can be received as the connectionmanagement data 116, which as noted above can be exchanged with theserver computer 112, as shown in FIG. 1.

The connection management application 108 can be configured to promptthe user 132 for input that indicates the second resource 118 with whichthe user 132 wants to connect the first resource 118. In the context ofFIG. 1, the user 132 can be prompted for input that indicates theresource 118N to which the user 132 wishes to connect the resource 118A.The connection management application 108 can be configured to send datathat represents the desired connection between the desired resources 118as connection selections, which again can be included in the connectionmanagement data 116 that can be exchanged between the computing device102 and the server computer 112. The connection management application108 also can be configured to exchange with, or obtain from, theconnection management service 110 account information. The accountinformation can include, inter alia, information that can identify allconnections 130 associated with the user 132 and/or an account so thatthese connections 130 can be identified and/or managed. This will beexplained in more detail herein, particularly with reference to FIGS.4A-4G.

The connection management service 110 can be configured to exchange,with the computing device 102, the connection management data 116. Inparticular, the connection management service 110 can receiveauthentication information from the computing device 102 and canauthenticate the user 132. It can be appreciated that in variousembodiments, the authentication of the user 132 (or the computing device102) can be offloaded from the connection management service 110 and/orthe server computer 112 to other devices and/or entities (e.g., an AAAservice, or the like) and/or that authentication can be handled by theconnection management application 108 executed by the computing device102 (e.g., access to the connection management application 108 can berestricted to a user 132 that has successfully authenticated with theconnection management application 108 and/or the computing device 102).If authentication is handled by devices or entities other than theconnection management service 110 and/or the server computer 112, theconnection management service 110 can receive authentication informationfor use in creating and/or managing connections 130. It should beunderstood that these examples are illustrative, and therefore shouldnot be construed as being limiting in any way.

The connection management service 110 also can receive identifyinginformation for a first resource such as the resource 118A. Based on theauthentication information and/or authentication levels, permissions,identification of the first resource 118A, and/or other considerationsassociated with the user 132 and/or the computing device 102, theconnection management service 110 can be configured to identify one ormore other resources (e.g., the resource 118N) with which the user 132or computing device 102 is authorized to create a connection 130. In thecontext of FIG. 1, if the connection management data 116 identifies theresource 118A, the connection management service 110 can determine,based on the identity of this resource 118A and based on otherinformation such as permissions for the user 132 or the computing device102, what resources 118 the resource 118A can communicate with. Itshould be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

Alternatively, the connection management service 110 can receive, fromthe computing device 102, identification of two resources 118 betweenwhich the user 132 or other entity wishes to create a connection 130.The connection management service 110 can determine, based on theidentification of the resources 118 and information associated with theuser 132 and/or the computing device 102, whether or not the connection130 that has been requested is authorized for the user 132 and/or thecomputing device 102. If the connection 130 is authorized, theconnection management service 110 can be configured to create theconnection 130.

To create the connection 130, the connection management service 110 canbe configured to access connection data 114. The connection data 114 canidentify, for a particular resource 118, how a connection with thatresource 118 is connected. In some embodiments, for example, theconnection data 114 can represent, for each connection 130, a workflowor procedure for enabling a connection 130 with that resource 118. Byway of example, connection data 114 for a connection 130 with a resource118 can include a list of operations to be completed to enable theconnection 130. The operations can include communications;establishment, dedication, and/or instantiation of network resources;establishment, dedication, and/or instantiation of computing and/orstorage resources; requesting of operations by other entities and/ordevices; combinations thereof; or the like. The connection managementservice 110 can be configured to obtain the connection data 114 that isto be used to establish the connection 130, and to perform or requestperformance of the various operations represented by the connection data114.

Upon completion of the operations represented by the connection data114, the connection 130 can be enabled, and the connection managementservice 110 can communicate information indicating the enablement of theconnection 130 to the computing device 102. If, however, the operationscannot be completed for some reason, the connection management service110 can be configured to elevate the creation of the connection 130 to athird party 136 such as, for example, a device, application, or otherentity that can perform the operations to create the connection 130. Asused herein, a “third party” refers to a party that is not a resource118 or a requestor of a connection 130. Once the connection 130 iscreated, the connection management service 110 can communicate that tothe computing device 102 as noted above. It should be understood thatthis example is illustrative, and therefore should not be construed asbeing limiting in any way.

According to various embodiments, the third party 136 illustrated anddescribed herein can correspond to an agent that can perform operationsto create a requested connection 130 where the connection 130 cannot becreated automatically (e.g., by way of performing the various methodsillustrated and described herein). Thus, if creation of a connection 130fails, the third party 136 can be engaged to create the connection 130.Additionally, it should be understood that the agent (or other type ofthird party 136) may require authority to manipulate a particularconnection 130 between resources 118 on behalf of a user 132 or otherentity.

Thus, embodiments of the concepts and technologies disclosed herein caninclude granting the agent or other type of third party 136 a proxyauthority. “Proxy authority” as used herein and in the claims refers tothe delegation of the authority of the user 132 or other requestor tothe agent or other type of third party 136 so that the agent can act onbehalf of the user 132 to make changes to the connection 130. In theevent that the agent or other third party 136 cannot successfully createthe connection 130, embodiments of the concepts and technologiesdisclosed herein include sending, to the user 132 or other requestor,detailed step-by-step instructions (including explanations of parts thatmay be needed as well as validation steps that can be performed toconfirm the connection 130) that can be used by the user 132 or otherentity to effect creation of the connection 130. It should be understoodthat this example is illustrative, and therefore should not be construedas being limiting in any way.

The connection management service 110 also can be configured to provide,to the computing device 102, information that can identify allconnections 130 associated with the computing device 102. Thus, itshould be understood that the connection data 114 that is stored at, oraccessible by, the server computer 112 can represent connections 130created using the connection management service 110. In someembodiments, the information associated with some or all of theconnections 130 can be keyed on the user 132 and/or the computing device102 for this and/or other purposes.

For example, the computing device 102 can request connection informationfrom the connection management service 110, and the connectionmanagement service 110 can access the connection data 114 to identifyall connections 130 associated with the user 132 and/or the computingdevice 102. Information identifying all of the connections 130associated with the user 132 and/or the computing device 102 can be sentto the computing device 102 as part of the connection management data116. The connection management application 108 can present thatinformation to the user 132 or other entity for management purposesand/or for other purposes. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

In practice, a user 132 or other entity can activate the connectionmanagement application 108 that can be executed by the computing device102. The connection management application 108 can be configured toenable creation of and/or management of a connection 130 between two ormore resources 118. As used herein with reference to a connection 130,the term “manage” and/or variants thereof can include viewing theconnection 130, changing the connection 130, deleting the connection130, enabling the connection 130, and/or disabling the connection 130.The connection management application 108, the connection managementservice 110, the computing device 102, and/or other entities or devicescan authenticate the user 132, another entity, and/or the computingdevice 102.

Once the user 132 or the computing device 102 is authenticated, theconnection management application 108 can prompt the user 132 forinformation identifying one or more of the resources 118 that are to beconnected. The connection management application 108 can be used to scanor otherwise obtain an identifier 124 associated with a first resource118A of the resources 118, and the connection management service 110 canobtain a resource identifier 128 associated with the second resource118N of the resources 118 from the user 132, from the server computer112, and/or in other manners.

Via exchanging data with the server computer 112, the connectionmanagement application 108 can communicate to the connection managementservice 110 the identities of one or more of the resources 118 that areto be connected and/or can communicate to the connection managementservice 110 a particular connection 130 that is to be created betweenthe resources 118. The connection management service 110 can accessconnection data 114 that can provide operations to be performed tocreate the desired connection 130. These operations can include, amongother things, granting of privileges and/or granting of permissions(e.g., connecting resources 118 together may require implicit orexplicit authority, which may be missing in some situations, or mayrequires resource-specific authorization) that may be required toactivate and/or establish connections between specific resources 118.

As such, it can be appreciated that the connection management service110 can know and/or can determine, for a particular connection 130between specific resources 118, operations (including granting orchanging of permissions) that may be required to establish a connection130. The connection management service 110 can be configured to performone or more of the operations and/or request performance of one or moreof the operations by other entities to create the connection 130.Information that describes connections 130 associated with the user 132and/or the computing device 102 can be stored by the connectionmanagement service 110, and can be used for various purposes. Theconnection 130 can be enabled, and the resources 118 can exchange data122 via the connection 130 for various purposes. In various embodiments,the information that describes various connections 130 associated with auser or the computing device 102 can be communicated to the computingdevice 102 by the connection management service 110 to enable management(e.g., viewing, changing, deleting, enabling, and/or disabling) of theconnections 130.

According to various embodiments of the concepts and technologiesdisclosed herein, the concepts and technologies disclosed herein can beused to enable a user 132 or other entity to effectively “point” his orher computing device 102 to one or more resources 118, or to use aconnection code (e.g., an electronically-provided code; a printed codethat may come with hardware and/or software, or the like) to connectresources 118.

During creation of connections 130 as illustrated and described herein,the connection management service 110 can be configured to not onlyauthenticate that the user 132 is entitled to create the connection 130,but also to enforce a maximum security requirement, meaning that allconnections 130 created via the connection management service 110 can benegotiated to be as secure as possible unless an override from anauthorized entity is entered to suspend the enforcement of this policy.Thus, embodiments of the concepts and technologies disclosed herein canbe used to create the most secure connection 130 possible betweenresources 118 in an autonomous or semi-autonomous fashion. It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

In some embodiments of the concepts and technologies disclosed herein,the creation of the connection 130 can effectively work in reverse. Inparticular, a user 132 or other entity can have a token that canindicate their authority and their desired connectivity. The resource118 that is to be connected can have the ability to scan for this tokenand, upon detection, to establish (via interactions with the connectionmanagement service 110), the connection 130. It should be understoodthat this example is illustrative, and therefore should not be construedas being limiting in any way.

Embodiments of the concepts and technologies disclosed herein also canbe used to monitor existing connections 130, thereby enabling billingand/or metering of connections 130, if desired. Also, because databasesof necessary operations can be updated regularly, negotiated connections130 can enable proprietary resources 118 to be connected with otherresources 118 with minimal effort on the part of end users and/ornetwork providers. Rather, such operations can be autonomously orsemi-autonomously performed. It should be understood that this exampleis illustrative, and therefore should not be construed as being limitingin any way.

Example use cases can include, for example, security connecting videoviews into a virtual gaming environment (the video console can be oneresource 118 and the gaming server can be the second resource 118);security connecting multiple disparate video views into a securitysolution; security connecting a computer (e.g., a PC, cloud device, orthe like) to a wireless display device; security connecting storagedevices, connecting remote consoles to headless devices; providing“invitation only” connection functionality (e.g., only a user inpossession of a proper code for a resource 118 can connect to thatresource 118); connection to TTY, closed captioning, etc.; connection tolanguage translation services; combinations thereof; or the like.

Resources 118 as illustrated and described herein can include simpleand/or complex, physical or virtual devices. These resources 118therefore can include, for example, simple physical devices, such asspeakers, displays, physical storage devices, sensors; simple virtualdevices such as chat systems, linear TV, storage services; complexphysical devices, such as telepresence endpoints; complex virtualdevices, such as telepresence meetings, virtual gaming environments, orthe like (e.g., in which these devices can have some aspect ofconnectivity enabled through Ethernet, WiFi, BLUETOOTH, LTE/5G, orcabling such as USB or HDMI).

According to various embodiments, the resources 118 can have a uniqueidentity, which can be tokenized. Thus, the physical manifestation of aresource 118 can have a visual identifier: 1D/2D bar code, or otherencoding schemes; and/or spatial virtual identifiers, including IR, NFC,BLUETOOTH beacons, RFID tags, or the like. A token can encode one ormore of a unique identity of the device; the type of device; and aspectsof the device.

According to various embodiments, some resources 118 can be aggregatedinto new virtual services, with aggregate resources offering “meta”aspects. Thus, “resources 118” as used herein can include such “resourceaspects” as well. Resource aspects can have one or more connections ortransformations available. Resources 118 may tag resource aspects withpreferred connections or transformations to match with other resourceaspects for the highest fidelity connections available. If there is nodirect aspect matching between resources 118, additional transformationresources 118 can be included in the connection 130.

According to various embodiments, the connection management service 110can be configured to receive, as input, a token and to return, asoutput, as much information as is provided or derived for creation of aconnection 130. It should be understood that the connections 130 createdusing the concepts and technologies disclosed herein can be permanent,transient, spatial, or temporal.

In one contemplated embodiment of using the concepts and technologiesdisclosed herein to create a new connection 130, the two resources 118being connected include a first telepresence system and a secondtelepresence systems. The first telepresence system has an identitytoken, which can include, for example, a printed 2D bar code, which canbe printed on the telepresence console of the first telepresence system(the “first telepresence system console”). It should be understood thatthis example is illustrative, and therefore should not be construed asbeing limiting in any way.

The second telepresence system also has an identity token, but can betotally software. The token may be in the form of a code in an email,SMS, or other electronic format, for example. The user or host of theconference enters the first telepresence system suite and launches themobile device application, authenticates to the device (thumbprint orsimilar) and points the mobile device to the 2D bar code on the firsttelepresence system console, which is scanned. According to someembodiments, the mobile device may be the initiator by reading the firsttelepresence system suite ID, or the first telepresence system suite mayinitiate by scanning the mobile device token as noted above.

According to this example embodiment, the connection management service110 can validate the user 132, determine that the user 132 is authorizedto use the resource (the first telepresence system suite), and can beginthe conference. The conference has a variety of aspects that are nowavailable including audio bridge, video bridge, video input, participantmanagement, etc.

The user 132 can receive an electronic code from a participant in theconference (e.g., at the second telepresence system). Participants insecond telepresence system may have also logged in, and the secondtelepresence system can have a series of aspects including audio andvideo bridge. The mobile device of the user 132 can validate the code,inspect both systems' aspects, identify that both offer and prefer videobridge, as well as the best common codec, and then can offer the user132 an option to connect the two telepresence systems. Secondary commonaspects include audio only bridging. The user 132 can take the defaultselection, or can choose from other possible combinations, such as onlyallowing audio to pass between the systems.

FIG. 1 illustrates one computing device 102, one network 104, one servercomputer 112, two resources 118, and one third party 136. It should beunderstood, however, that various implementations of the operatingenvironment 100 can include zero, one, or more than one computing device102; zero, one, or more than one network 104; zero, one, or more thanone server computer 112; zero, one, two, or more than two resources 118;and zero, one, or more than one third party 136. As such, theillustrated embodiment should be understood as being illustrative, andshould not be construed as being limiting in any way.

Turning now to FIG. 2, aspects of a method 200 for creating a connectionvia interactions with a connection management service will be describedin detail, according to an illustrative embodiment. It should beunderstood that the operations of the methods disclosed herein are notnecessarily presented in any particular order and that performance ofsome or all of the operations in an alternative order(s) is possible andis contemplated. The operations have been presented in the demonstratedorder for ease of description and illustration. Operations may be added,omitted, and/or performed simultaneously, without departing from thescope of the concepts and technologies disclosed herein.

It also should be understood that the methods disclosed herein can beended at any time and need not be performed in its entirety. Some or alloperations of the methods, and/or substantially equivalent operations,can be performed by execution of computer-readable instructions includedon a computer storage media, as defined herein. The term“computer-readable instructions,” and variants thereof, as used herein,is used expansively to include routines, applications, applicationmodules, program modules, programs, components, data structures,algorithms, and the like. Computer-readable instructions can beimplemented on various system configurations including single-processoror multiprocessor systems, minicomputers, mainframe computers, personalcomputers, hand-held computing devices, microprocessor-based,programmable consumer electronics, combinations thereof, and the like.

Thus, it should be appreciated that the logical operations describedherein are implemented (1) as a sequence of computer implemented acts orprogram modules running on a computing system and/or (2) asinterconnected machine logic circuits or circuit modules within thecomputing system. The implementation is a matter of choice dependent onthe performance and other requirements of the computing system.Accordingly, the logical operations described herein are referred tovariously as states, operations, structural devices, acts, or modules.These states, operations, structural devices, acts, and modules may beimplemented in software, in firmware, in special purpose digital logic,and any combination thereof. As used herein, the phrase “cause aprocessor to perform operations” and variants thereof is used to referto causing a processor of a computing system or device, such as thecomputing device 102, the server computer 112, and/or the third party136, to perform one or more operations and/or causing the processor todirect other components of the computing system or device to perform oneor more of the operations.

For purposes of illustrating and describing the concepts of the presentdisclosure, the method 200 is described herein as being performed by thecomputing device 102 via execution of one or more software modules suchas, for example, the connection management application 108. It should beunderstood that additional and/or alternative devices and/or networknodes can provide the functionality described herein via execution ofone or more modules, applications, and/or other software including, butnot limited to, the connection management application 108. Thus, theillustrated embodiments are illustrative, and should not be viewed asbeing limiting in any way.

The method 200 begins at operation 202. At operation 202, the computingdevice 102 can register with the connection management service 110.According to various embodiments, the computing device 102 can sign upfor and/or otherwise register with the connection management service 110and/or the connection management application 108. Thus, operation 202can include creating an account with the connection management service110 and/or the connection management application 108, settingpermissions and/or access levels for a user 132 or device such as thecomputing device 102, or the like. Because registration can occur at anytime, it should be understood that in many iterations of the method 200the operation 202 may be omitted and/or may not occur. Furthermore, itshould be understood that operation 202 can be performed by otherentities and/or devices and therefore may not be performed by thecomputing device 102. It should be understood that these examples areillustrative, and therefore should not be construed as being limiting inany way.

From operation 202, the method 200 can proceed to operation 204. Atoperation 204, the computing device 102 can detect a request to create aconnection 130. The request detected in operation 204 can be detected ina number of ways. In some embodiments, activation and/or launching ofthe connection management application 108 can be understood ascorresponding to a request to create a connection 130. In some otherembodiments, the connection management application 108 may be activatedor launched, and an option may be selected within the application toindicate a request to create a connection 130. In yet other embodiments,interactions with optical indicia and/or other types of media (e.g.,RFID tags, NFC devices, etc.) can be interpreted as corresponding to arequest to create a connection 130. Thus, it should be understood thatany type of request to create a connection 130 can be detected inoperation 204 without departing from the scope of this disclosure.

From operation 204, the method 200 can proceed to operation 206. Atoperation 206, the computing device 102 can authenticate the requestor.According to various embodiments, the requestor can be a user 132 of thecomputing device 102, though this is not necessarily the case. Thus,operation 206 can correspond to authenticating a user 132 at thecomputing device 102 by way of verifying a password, matching abiometric of the user 132 to a stored biometric (e.g., facialrecognition, fingerprint recognition, retinal scan, or the like), or bycommunicating with other entities to authenticate the user 132 and/orthe computing device 102. Because authentication of users and devices isgenerally understood, operation 206 will not be further describedherein. Also, because authentication of the user 132 or other entity canoccur at launching of the connection management application 108 (or atother times), it should be understood operation 206 may be performedbefore one or more of operations 202-204 and/or at other times. Thus,the illustrated embodiment should be understood as being illustrativeand should not be construed as being limiting in any way.

From operation 206, the method 200 can proceed to operation 208. Atoperation 208, the computing device 102 can prompt for identification ofa first resource 118 that is to be part of the connection 130 beingrequested. According to various embodiments, the identification of thefirst resource 118 in operation 208 can include an identifier 124. Asnoted above, the identifier 124 can correspond to identifyinginformation that is obtained from within a proximity 126 of the firstresource 118 (e.g., the resource 118A shown in FIG. 1). Thus, theidentifier 124 obtained in operation 208 can correspond to visualindicia (that can be photographed and/or scanned by the computingdevice), visual information that can be manually entered at thecomputing device 102 by a requestor or other entity, data that can betransmitted by one or more devices (e.g., RFID tags or labels, BLUETOOTHcommunications, etc.), or the like. Because the identifier 124 can beobtained in additional and/or alternative manners, it should beunderstood that these examples are illustrative, and therefore shouldnot be construed as being limiting in any way.

According to various embodiments, the first resource 118 can be requiredby the connection management application 108 and/or the connectionmanagement service 110 to be identified by a proximity-based or visualidentifier as a way to add a second factor of authentication to theprocess illustrated and described herein. Namely, this embodiment canadd the ability to authenticate the location of the requestor as beingin a proximity 126 of the resource 118, which may be helpful in variousembodiments. It should be understood that this example is illustrative,and therefore should not be construed as being limiting in any way.

As shown in FIG. 2, the method 200 can proceed along one of two pathsfrom operation 208. In particular, in some embodiments, the method 200can proceed from operation 208 to operation 210A. At operation 210A, thecomputing device 102 can prompt for identification of the secondresource 118 that is to be a part of the connection 130 being requested.According to various embodiments, a user 132 or other requestor caninput, in operation 210A, a resource identifier 128 as illustrated anddescribed above with reference to FIG. 1. Thus, for example, the user132 or other entity can enter a MAC address, an IP address, an IMSI, anIMEI, a GUID, or other identifying information that can be used toidentify the second resource 118 with which the first resource 118 is tocommunicate. Because the second resource 118 can be identified inadditional and/or alternative ways, it should be understood that thisexample is illustrative, and therefore should not be construed as beinglimiting in any way. Thus, it can be appreciated that operation 210A canbe performed in embodiments of the method 200 in which a requestoridentifies two or more resources 118 between which a connection 130 isbeing requested.

In some other embodiments, in which only a first of the two or moreresources 118 is identified, the method 200 can proceed from operation208 to operation 210B. At operation 210B, the computing device 102 cansend the identifier 124 obtained in operation 208 to the connectionmanagement service 110. As will be explained in more detail below withreference to FIG. 3, the connection management service 110 can use theidentifier 124 received from the computing device 102 to identify one ormore resources 118 with which the first resource 118 (identified inoperation 208) can communicate. The connection management service 110can be configured to create one or more options (connection options)that identify a resource 118 with which the resource 118 identified inoperation 208 can communicate, and to provide those connection optionsto the computing device 102. Thus, from operation 210B, the method 200can proceed to operation 212.

At operation 212, the computing device 102 can receive, from theconnection management service 110, one or more connection options. Oneor more of the connection options obtained in operation 212 can identifya resource 118 with which the resource identified in operation 208 cancommunicate, as well as one or more functions that can be supported bysuch connections 130. Thus, operation 212 can correspond to thecomputing device 102 obtaining one or more resources 118 that can becommunicated with and/or one or more purposes for which those one ormore resources 118 can be communicated with.

From operation 212, the method 200 can proceed to operation 214. Atoperation 214, the computing device 102 can prompt for a selection ofone of the one or more connection options received in operation 212. Invarious embodiments, the connection options can be presented at thecomputing device 102, and operation 214 can correspond to a selection ofone of the one or more connection options. It should be understood thatthis example is illustrative, and therefore should not be construed asbeing limiting in any way.

From operation 214, the method 200 can proceed to operation 216. Themethod 200 also can proceed to operation 216 from operation 210A. Atoperation 216, the computing device 102 can send the informationobtained in operations 208-214 to the connection management service 110.Thus, in operation 216 the computing device 102 can send the identifier124 and the resource identifier 128 to the connection management service110 (if path A was taken in the method 200), or the selection of theconnection option (if path B was taken in the method 200). Theinformation sent to the connection management service 110 in operation216 can be used by the connection management service 110 to create theconnection 130, as will be explained in more detail below with referenceto FIG. 3.

Although not shown in FIG. 2, it should be understood from thedisclosure herein that the connections 130 associated with a computingdevice 102 can be managed (e.g., enabled, disabled, deleted, modified).Thus, the method 200 can include additional operations for requestingdata that identifies existing connections associated with the user 132or the computing device 102 from the connection management service 110,presenting the data that identifies existing connections associated withthe user 132 or the computing device 102 in a display, and receivinginput for enabling, disabling, deleting, and/or modifying the existingconnections associated with the user 132 or the computing device 102.Thus, the concepts and technologies disclosed herein can provide apowerful tool for revoking and/or suspending connections for variousreasons (e.g., a parent or other entity may be authorized to modifyconnections for children or other entities and can suspend or delete aparticular connection for various purposes). It should be understoodthat this example is illustrative, and therefore should not be construedas being limiting in any way.

From operation 216, the method 200 can proceed to operation 218. Themethod 200 can end at operation 218.

Turning now to FIG. 3, aspects of a method 300 for creating a connectionby a connection management service will be described in detail,according to an illustrative embodiment. For purposes of illustratingand describing the concepts of the present disclosure, the method 300 isdescribed herein as being performed by the server computer 112 viaexecution of one or more software modules such as, for example, theconnection management service 110. It should be understood thatadditional and/or alternative devices and/or network nodes can providethe functionality described herein via execution of one or more modules,applications, and/or other software including, but not limited to, theconnection management service 110. Thus, the illustrated embodiments areillustrative, and should not be viewed as being limiting in any way.

The method 300 begins at operation 302. At operation 302, the servercomputer 112 can register a user 132 or other entity. According tovarious embodiments, a user 132 or other entity (e.g., the computingdevice 102) can sign up for and/or otherwise register with theconnection management service 110, and thus operation 302 can correspondto the server computer 112 receiving data from the computing device 102(or other devices or entities) for creating an account with theconnection management service 110, setting permissions and/or accesslevels for a user 132 or device such as the computing device 102, or thelike. Because registration can occur at any time, it should beunderstood that some embodiments of the method 300 can omit operation302 and/or that operation 302 may be performed at any other time withoutperforming the remainder of the method 300. It should be understood thatthese examples are illustrative, and therefore should not be construedas being limiting in any way.

From operation 302, the method 300 can proceed to operation 304. Atoperation 304, the server computer 112 can detect a request to create aconnection 130. It can be appreciated from the description of FIGS. 1-2above that operation 304 can correspond to the server computer 112receiving information from the computing device 102 such as, forexample, the server computer 112 receiving data that identifies one ormore of the resources 118 that are to be part of the connection 130being requested, the server computer 112 receiving information thatidentifies a specific connection 130 that is requested, or the like. Aswill be appreciated with reference to operations 308-316, one or moreidentifiers or other information can be obtained in operation 304.

From operation 304, the method 300 can proceed to operation 306. Atoperation 306, the server computer 112 can authenticate the requestorassociated with the request detected in operation 304. As noted above,the authentication illustrated in operation 306 can be performed by thecomputing device 102 and/or other devices or entities, and as such,operation 306 can correspond to the server computer 112 determining thatthe requestor associated with the request detected in operation 304 isauthenticated (as opposed to actually performing authentication). Basedon the authentication of the requestor, the server computer 112 candetermine what connections 130 are available, if a specific requestedconnection 130 is authorized, and the like. It should be understood thatthis example is illustrative, and therefore should not be construed asbeing limiting in any way.

From operation 306, the method 300 can proceed to operation 308. Atoperation 308, the server computer 112 can receive identification of afirst resource 118 that is to be part of the connection 130 beingrequested. As explained above in detail with reference to FIGS. 1-2, theidentification of the first resource 118 can be limited, in someembodiments, to data that is only obtainable in a proximity 126 of thefirst resource 118 such as a proximity-based transmission or opticalinput of visual indicia. Such an embodiment can enable addition of asecond factor of authentication to the process illustrated and describedherein. Namely, using visual or proximity-based information for theidentification of the first resource 118 can enable the connectionmanagement service 110 to authenticate the location of the requestor asbeing in a proximity 126 of the resource 118. It should be understoodthat this example is illustrative, and therefore should not be construedas being limiting in any way.

As shown in FIG. 3, the method 300 can proceed along one of two pathsfrom operation 308. In particular, in some embodiments, the method 300can proceed from operation 308 to operation 310A. At operation 310A, theserver computer 112 can receive, from the computing device 102, anidentification of the second resource 118 that is to be a part of theconnection 130 being requested. According to various embodiments, a user132 or other requestor can input a resource identifier 128 and thatinformation can be sent to the server computer 112. Thus, it can beappreciated that operation 310A can be performed in embodiments of themethod 300 in which a requestor identifies two or more resources 118between which a connection 130 is being requested.

In some other embodiments, in which only a first of the two or moreresources 118 is identified by the requestor, the method 300 can proceedfrom operation 308 to operation 310B. At operation 310B, the servercomputer 112 can determine, based on the identification of the firstresource 118, one or more connection options that are available for therequestor (e.g., based on the authentication of the user 132 and/or thecomputing device 102) and the resource 118 identified in operation 308.Thus, the connection management service 110 can be configured toidentify one or more options (connection options) that identify aresource 118 with which the resource 118 identified in operation 308 cancommunicate.

From operation 310B, the method 300 can proceed to operation 312. Atoperation 312, the server computer 112 can send the options determinedin operation 310B to the requestor (e.g., the computing device 102). Oneor more of the connection options sent to the requestor (e.g., thecomputing device 102) in operation 312 can identify a resource 118 withwhich the resource identified in operation 308 can communicate, as wellas one or more functions that can be supported by such connections 130.Thus, operation 312 can correspond to the server computer 112 sending tothe computing device 102 information that can identify one or moreresources 118 that can be communicated with and/or one or more purposesfor which those one or more resources 118 can be communicated with bythe resource 118 identified in operation 308.

From operation 312, the method 300 can proceed to operation 314. Atoperation 314, the server computer 112 can receive, from the requestor(e.g., the computing device 102) communicated with in operation 312,information that identifies a selection of one of the one or moreconnection options sent to the requestor in operation 312.

From operation 314, the method 300 can proceed to operation 316. Themethod 300 also can proceed to operation 316 from operation 310A. Atoperation 316, the server computer 112 can access the connection data114 to determine how to create (or to request creation of) theconnection 130 being requested by the requestor. Thus, as explainedabove, the server computer 112 can access the connection data 114 todetermine what operations are to be performed by the server computer 112(or requested by the server computer 112) to create the connection 130.In some embodiments, as noted above, the operations can be identified bya workflow or other data structure. In one contemplated embodiment, theworkflow or other data structure can specify, for a connection with aresource 118, a first operation, a second operation, and a thirdoperation that are to be performed to create the connection 130. Itshould be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

From operation 316, the method 300 can proceed to operation 318. Atoperation 318, the server computer 112 can create the connection 130. Insome embodiments, as can be appreciated from the above description, theserver computer 112 can be configured to perform the operationsdetermined in operation 318 and/or can request performance of theoperations by other entities. Thus, the server computer 112 can effectcreation of or trigger creation of the connection 130, even if theserver computer 112 does not directly perform the various operationsdetermined in operation 316.

Although not shown in FIG. 3, it should be understood from thedisclosure herein that the connections 130 associated with a computingdevice 102 can be managed (e.g., enabled, disabled, deleted, modified)via the server computer 112. Thus, the method 300 can include additionaloperations for providing data that identifies existing connectionsassociated with the user 132 or the computing device 102 to thecomputing device 102 and receiving input for enabling, disabling,deleting, and/or modifying the existing connections associated with theuser 132 or the computing device 102. It should be understood that thisexample is illustrative, and therefore should not be construed as beinglimiting in any way.

From operation 318, the method 300 can proceed to operation 320. Themethod 300 can end at operation 320.

FIGS. 4A-4G are user interface (“UI”) diagrams showing aspects of UIsfor using and/or interacting with the connection management application108 and/or the connection management service 110, according to someillustrative embodiments. FIG. 4A shows an illustrative screen display400A. According to some embodiments of the concepts and technologiesdescribed herein, the screen display 400A can be generated by a devicesuch as the computing device 102 via interactions with the connectionmanagement application 108 and/or the connection management service 110.In particular, according to various embodiments, the computing device102 can generate the screen display 400A and/or other screen displays inconjunction with and/or based upon interactions with the connectionmanagement application 108 described herein, which can be configured torender the screen display 400A using data generated at the computingdevice 102 and/or using data provided by the connection managementservice 110 such as, for example, the connection management data 116. Itshould be appreciated that the UI diagram illustrated in FIG. 4A isillustrative of one contemplated example of the UIs that can begenerated and/or displayed in accordance with the concepts andtechnologies disclosed herein, and therefore should not be construed asbeing limiting in any way.

According to various embodiments, the screen display 400A can bepresented, for example, upon launching or activation of the connectionmanagement application 108 at the computing device 102, uponauthentication of a user 132 or other entity (e.g., a requestorassociated with a connection 130), or the like. In the illustratedembodiment shown in FIG. 4A, the screen display 400A is presented in aconfiguration that may correspond to a display that can be providedafter authentication of the requestor with the connection managementapplication 108, the connection management service 110, the computingdevice 102, and/or other entities. Because the screen display 400Aillustrated in FIG. 4A can be displayed at additional and/or alternativetimes, it should be understood that these examples are illustrative andtherefore should not be construed as being limiting in any way.

The screen display 400A can include various menus and/or menu options(not shown in FIG. 4A) or multiple controls for performing variousfunctionality associated with the connection management application 108and/or the connection management service 110. In the illustratedembodiment, the screen display 400A includes a user interface (“UI”)control 402, a UI control 404, a UI control 406, and a UI control 408.

The UI control 402 can be selectable to begin a process flow to create anew connection 130 between two or more resources 118. Thus, it can beappreciated that selection of the UI control 402 can cause the computingdevice 102 (e.g., via execution of the connection management application108) to begin one or more process flows for interacting with aconnection management service 110 to create a new connection 130 betweentwo or more resources 118. By way of example, and not limitation,selection of the UI control 402 can prompt the computing device 102 tobegin performance of some or all of the operations illustrated in FIG. 2with respect to the method 200. It should be understood that thisexample is illustrative, and therefore should not be construed as beinglimiting in any way.

The UI control 404 can be selectable to begin a process flow formanaging (e.g., enabling, disabling, deleting, and/or modifying) anexisting connection 130. As such, selection of the UI control 404 cancause the computing device 102 (e.g., via execution of the connectionmanagement application 108) to request connection information from theconnection management service 110. It can be appreciated from the abovedescription that the computing device 102 can also be configured (e.g.,via execution of the connection management application 108) to presentthe existing connections 130 for various operations. It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

The UI control 406 can be selectable to begin a process flow formanaging an account associated with the user 132 and/or the computingdevice 102. Thus, selection of the UI control 404 can cause thecomputing device 102 to connect to the connection management service 110to perform various account operations such as delegating control toother users, suspending delegated controls, adding new devices and/orresources 118 to an account, changing authentication information,combinations thereof, or the like. The UI control 408 can be selectableto log out of the connection management application 108 and/or theconnection management service 110. Thus, selection of the UI control 408can cause the computing device 102 to hide the screen display 400Aand/or to exit the connection management application 108 altogether.Because additional or alternative controls can be included in the screendisplay 400A, it should be understood that the example embodiment shownin FIG. 4A is illustrative and therefore should not be construed asbeing limiting in any way.

FIG. 4B shows an illustrative screen display 400B. According to someembodiments of the concepts and technologies described herein, thescreen display 400B can be generated by a device such as the computingdevice 102 via interactions with the connection management application108 and/or the connection management service 110. In particular,according to various embodiments, the computing device 102 can generatethe screen display 400B and/or other screen displays in conjunction withand/or based upon interactions with the connection managementapplication 108 described herein, which can be configured to render thescreen display 400B using data generated at the computing device 102and/or using data provided by the connection management service 110 suchas, for example, the connection management data 116. It should beappreciated that the UI diagram illustrated in FIG. 4B is illustrativeof one contemplated example of the UIs that can be generated and/ordisplayed in accordance with the concepts and technologies disclosedherein, and therefore should not be construed as being limiting in anyway.

According to various embodiments, the screen display 400B can bepresented, for example, upon selection of the UI control 402 illustratedand described above with reference to FIG. 4A. Because the screendisplay 400B illustrated in FIG. 4B can be displayed at additionaland/or alternative times, it should be understood that these examplesare illustrative and therefore should not be construed as being limitingin any way.

The screen display 400B includes a UI control 410, a UI control 412, aUI control 414, and a UI control 416. The UI control 410 can beselectable to enable manual entry of an identifier 124 associated with aresource 118. Thus, for example, selection of the UI control 410 cancause the computing device 102 to present a text field and a keyboarddisplay via which text can be entered to identify the resource 118 forwhich a connection 130 is being created. It should be understood thatthis example is illustrative, and therefore should not be construed asbeing limiting in any way.

The UI control 412 can be selectable to begin a process for scanningoptical or visual indicia using the computing device 102. Thus, forexample, selection of the UI control 412 can cause the computing device102 (e.g., via execution of the connection management application 108)to launch a camera application to capture visual indicia that canidentify the resource 118 for which a connection 130 is being created.It should be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

The UI control 414 can be selectable to launch a help screen and/or toconnect to a help agent, and the UI control 416 can be selectable tocancel creation of the new connection 130. While the UI control 416indicates that cancelling creation of the new connection 130 willtrigger presentation of a previous display such as the screen display400A, it should be understood that this is not necessarily the case.Thus, selection of the UI control 416 can cause the computing device 102to hide the screen display 400B, to present the screen display 400A orother screen displays, and/or to exit the connection managementapplication 108 altogether. Because additional or alternative controlscan be included in the screen display 400B, it should be understood thatthe example embodiment shown in FIG. 4B is illustrative and thereforeshould not be construed as being limiting in any way.

FIG. 4C shows an illustrative screen display 400C that can be generatedby a device such as the computing device 102 via interactions with theconnection management application 108 and/or the connection managementservice 110. In particular, according to various embodiments, thecomputing device 102 can generate the screen display 400C and/or otherscreen displays in conjunction with and/or based upon interactions withthe connection management application 108 described herein, which can beconfigured to render the screen display 400C using data generated at thecomputing device 102 and/or using data provided by the connectionmanagement service 110 such as, for example, the connection managementdata 116. It should be appreciated that the UI diagram illustrated inFIG. 4C is illustrative of one contemplated example of the UIs that canbe generated and/or displayed in accordance with the concepts andtechnologies disclosed herein, and therefore should not be construed asbeing limiting in any way.

According to various embodiments, the screen display 400C can bepresented, for example, upon selection of the UI control 412 illustratedand described above with reference to FIG. 4B. Because the screendisplay 400C illustrated in FIG. 4C can be displayed at additionaland/or alternative times, it should be understood that these examplesare illustrative and therefore should not be construed as being limitingin any way.

The screen display 400C includes a scan screen 418. The scan screen 418can be launched by the computing device 102 to provide a user friendlydisplay for capturing visual indicia as illustrated and describedherein. As shown in FIG. 4C, the scan screen 418 can include one or moreframe identifiers 420. The frame identifiers 420 can be omitted invarious embodiments or substituted for other types or shapes of frames(e.g., one or more squares, one or more circles, other shapes, dots,etc.). Because displays for scanning visual indicia are generallyunderstood, this aspect of the screen display 400C is not described infurther detail with reference to FIG. 4C.

As shown in FIG. 4C, the screen display 400C also can include a UIcontrol 422 and a UI control 424. The UI control 422 can be selectableto cause the computing device 102 to capture a current view of thecamera of the computing device 102. Thus, for example, selection of theUI control 422 can cause the computing device 102 to capture a currentview of the camera of the computing device 102 and to use the resultingimage for various reasons (e.g., either to analyze the image to extractinformation such as identifiers and the like), to upload the image toother entities, combinations thereof, or the like. It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

The UI control 424 can be selectable to cancel capturing of visualinformation. While the UI control 424 indicates that cancellingcapturing of the visual information will trigger presentation of aprevious display such as the screen display 400B, it should beunderstood that this is not necessarily the case. Thus, selection of theUI control 424 can cause the computing device 102 to hide the screendisplay 400C, to present other screen displays, and/or to exit theconnection management application 108 altogether. Because additional oralternative controls can be included in the screen display 400C, itshould be understood that the example embodiment shown in FIG. 4C isillustrative and therefore should not be construed as being limiting inany way.

FIG. 4D shows an illustrative screen display 400D that can be generatedby a device such as the computing device 102 via interactions with theconnection management application 108 and/or the connection managementservice 110. In particular, according to various embodiments, thecomputing device 102 can generate the screen display 400D and/or otherscreen displays in conjunction with and/or based upon interactions withthe connection management application 108 described herein, which can beconfigured to render the screen display 400D using data generated at thecomputing device 102 and/or using data provided by the connectionmanagement service 110 such as, for example, the connection managementdata 116. It should be appreciated that the UI diagram illustrated inFIG. 4D is illustrative of one contemplated example of the UIs that canbe generated and/or displayed in accordance with the concepts andtechnologies disclosed herein, and therefore should not be construed asbeing limiting in any way.

As shown in FIG. 4D, the screen display 400D can include a resourceidentification feedback area 426, which can indicate a resource 118 thathas been identified as part of the creation of a new connection 130 (orat other times). The resource identification feedback area 426 can bepopulated with information in various formats that may be human readableor may not be human readable (or human interpretable). Thus, forexample, the resource identification feedback area 426 can provide anidentifier of a resource 118 for which a connection 130 is being createdin various formats such as a product identifier, a GUID or other string,a photograph of the product, combinations thereof, or the like. Ittherefore should be understood that the description of the resource 118as shown in the screen display 400D is merely illustrative and shouldnot be construed as being limiting in any way.

As shown in FIG. 4D, the screen display 400D also can include a UIcontrol 428, a UI control 430, a UI control 432, and a UI control 434.The UI control 428 can be selectable to cause the computing device 102to present connection options. As explained above, particularly withreference to FIGS. 1-3, connection options can be generated by theconnection management service 110 based on either the identity of thefirst resource 118 (e.g., the resource 118A shown in FIG. 1) or based onthe identities of multiple resources 118 (e.g., the identities of theresources 118A-N in FIG. 1). Thus, selection of the UI control 428 cancause the computing device 102 to interact with the connectionmanagement service 110 to obtain one or more connection options for thefirst resource 118 identified by the requestor using the connectionmanagement application 108. Such operations could correspond, forexample, to the computing device 102 performing operations 210B-212 ofthe method 200 and the server computer 112 performing operations310B-312 of the method 300. Because the connection options can becreated and/or obtained in other manners, it should be understood thatthis example is illustrative, and therefore should not be construed asbeing limiting in any way.

The UI control 430 can be selectable to cause the computing device 102to obtain an identifier associated with another resource 118. Thus, forexample, selection of the UI control 430 can cause the computing device102 to present a text field and a keyboard display via which text can beentered to identify the resource 118 for which a connection 130 is beingcreated; to launch another scan screen such as that illustrated anddescribed above with reference to FIG. 4C; to communicate with otherdevices or entities to obtain another identifier; combinations thereof;or the like. It should be understood that this example is illustrative,and therefore should not be construed as being limiting in any way.

The UI control 432 can be selectable to indicate that the resource 118identified in the resource identification feedback area 426 isincorrect. While the illustrated UI control 432 indicates thatindicating that the resource 118 identified in the resourceidentification feedback area 426 is incorrect will trigger presentationof a previous display such as the screen display 400C, it should beunderstood that this is not necessarily the case. Thus, selection of theUI control 432 can cause the computing device 102 to hide the screendisplay 400D, to present other screen displays, and/or to exit theconnection management application 108 altogether. The UI control 434 canbe selectable to cancel creation of the new connection 130. Becauseadditional or alternative controls can be included in the screen display400D, it should be understood that the example embodiment shown in FIG.4D is illustrative and therefore should not be construed as beinglimiting in any way.

FIG. 4E shows an illustrative screen display 400E that can be generatedby a device such as the computing device 102 via interactions with theconnection management application 108 and/or the connection managementservice 110. In particular, according to various embodiments, thecomputing device 102 can generate the screen display 400E and/or otherscreen displays in conjunction with and/or based upon interactions withthe connection management application 108 described herein, which can beconfigured to render the screen display 400E using data generated at thecomputing device 102 and/or using data provided by the connectionmanagement service 110 such as, for example, the connection managementdata 116. It should be appreciated that the UI diagram illustrated inFIG. 4E is illustrative of one contemplated example of the UIs that canbe generated and/or displayed in accordance with the concepts andtechnologies disclosed herein, and therefore should not be construed asbeing limiting in any way.

According to various embodiments, the screen display 400E can bepresented, for example, upon selection of the UI control 428 illustratedand described above with reference to FIG. 4D. Because the screendisplay 400E illustrated in FIG. 4E can be displayed at additionaland/or alternative times, it should be understood that these examplesare illustrative and therefore should not be construed as being limitingin any way.

The screen display 400E includes a connection option selection screen436. The connection option selection screen 436 can be launched by thecomputing device 102 to provide a list showing the connection optionsavailable for the resource 118 initially entered by the user 132 orother entity (e.g., via the scan screen 418 illustrated and describedabove with reference to FIG. 4C). As shown in FIG. 4E, the connectionoption selection screen 436 can include one or more connection selectioncontrols 438A-E (hereinafter collectively and/or generically referred toas “connection selection controls 438”). The connection selectioncontrols 438 can correspond to UI controls that, when selected, causethe computing device 102 to send, to the connection management service110, an indication of a specific connection (as indicated by the text onthe selected connection selection control 438) that is desired. Thus,for example, if the connection selection control 438A is selected, thecomputing device 102 can send, to the connection management service 110,an indication that the connection 130 being requested is between adisplay and a local gateway. It should be understood that this exampleis illustrative, and therefore should not be construed as being limitingin any way.

As shown in FIG. 4E, the screen display 400E also can include a UIcontrol 440 and a UI control 442. The UI control 440 can be selectableto cause the computing device 102 to display additional connectionselection controls 438 (in the event that additional connections 130 areavailable for the identified resource 118). Thus, selection of the UIcontrol 440 can cause the computing device 102 to display additionalconnection selection controls 438 that can be selected as explainedabove. The UI control 442 can be selectable to cancel creation of thenew connection 130. Because additional or alternative controls can beincluded in the screen display 400E, it should be understood that theexample embodiment shown in FIG. 4E is illustrative and therefore shouldnot be construed as being limiting in any way.

FIG. 4F shows an illustrative screen display 400F that can be generatedby a device such as the computing device 102 via interactions with theconnection management application 108 and/or the connection managementservice 110. In particular, according to various embodiments, thecomputing device 102 can generate the screen display 400F and/or otherscreen displays in conjunction with and/or based upon interactions withthe connection management application 108 described herein, which can beconfigured to render the screen display 400F using data generated at thecomputing device 102 and/or using data provided by the connectionmanagement service 110 such as, for example, the connection managementdata 116. It should be appreciated that the UI diagram illustrated inFIG. 4F is illustrative of one contemplated example of the UIs that canbe generated and/or displayed in accordance with the concepts andtechnologies disclosed herein, and therefore should not be construed asbeing limiting in any way.

According to various embodiments, the screen display 400F can bepresented, for example, upon selection of the connection selectioncontrol 438A illustrated and described above with reference to FIG. 4E.Because the screen display 400F illustrated in FIG. 4F can be displayedat additional and/or alternative times, it should be understood thatthese examples are illustrative and therefore should not be construed asbeing limiting in any way.

The screen display 400F includes a connection verification screen 444.The connection verification screen 444 can be launched by the computingdevice 102 to provide a confirmation of a new connection 130 that hasbeen created. Of course, it should be understood that a display that issubstantially similar to the connection verification screen 444 can bedisplayed if an existing connection 130 is modified or otherwise changedin accordance with the various embodiments of the concepts andtechnologies disclosed herein. As such, the illustrated embodiment isillustrative and should not be construed as being limiting in any way.

As shown in FIG. 4F, the connection verification screen 444 indicatesthe two resources that are being connected via the newly createdconnection 130. A user 132 or other entity can use the connectionverification screen 444 to verify the new connection 130, if desired.The screen display 400F also can include a UI control 446 and a UIcontrol 448. The UI control 446 can be selectable to indicate thatsomething in the connection verification screen 444 is inaccurate,thereby causing the computing device 102 to return to a previous screento select a different connection option, if desired. Selection of the UIcontrol 446 can cause the computing device 102 to again display theconnection selection controls 438, if desired. The UI control 448 can beselectable to confirm creation of the new connection 130. Selection ofthe UI control 448 can cause the computing device 102 to exit theconnection creation process, if desired, or to take other actions suchas sending confirmation to the connection management service 110, or thelike. Because additional or alternative controls can be included in thescreen display 400F, it should be understood that the example embodimentshown in FIG. 4F is illustrative and therefore should not be construedas being limiting in any way.

FIG. 4G shows an illustrative screen display 400G that can be generatedby a device such as the computing device 102 via interactions with theconnection management application 108 and/or the connection managementservice 110. In particular, according to various embodiments, thecomputing device 102 can generate the screen display 400G and/or otherscreen displays in conjunction with and/or based upon interactions withthe connection management application 108 described herein, which can beconfigured to render the screen display 400G using data generated at thecomputing device 102 and/or using data provided by the connectionmanagement service 110 such as, for example, the connection managementdata 116. It should be appreciated that the UI diagram illustrated inFIG. 4G is illustrative of one contemplated example of the UIs that canbe generated and/or displayed in accordance with the concepts andtechnologies disclosed herein, and therefore should not be construed asbeing limiting in any way.

According to various embodiments, the screen display 400G can bepresented, for example, upon selection of the UI control 404 illustratedand described above with reference to FIG. 4A. Because the screendisplay 400G illustrated in FIG. 4G can be displayed at additionaland/or alternative times, it should be understood that these examplesare illustrative and therefore should not be construed as being limitingin any way.

The screen display 400G includes an existing connection managementscreen 450. The existing connection management screen 450 can belaunched by the computing device 102 to provide a list showing existingconnections 130 associated with the user 132, the computing device 102,and/or other entities. As shown in FIG. 4G, the existing connectionmanagement screen 450 can include one or more connection managementcontrols 452A-F (hereinafter collectively and/or generically referred toas “connection management controls 452”). The connection managementcontrols 452 can correspond to UI controls that, when selected, causethe computing device 102 to obtain details associated with an existingconnection 130, and to present options for modifying, enabling,disabling, deleting, or otherwise changing an existing connection 130configured through and/or managed by the connection managementapplication 108 and/or the connection management service 110. Thus, forexample, if the connection management control 452A is selected, thecomputing device 102 can obtain, from the connection management service110, details associated with the connection 130 indicated by the text onthe connection management control 452A. It should be understood thatthis example is illustrative, and therefore should not be construed asbeing limiting in any way.

As shown in FIG. 4G, the screen display 400G also can include a UIcontrol 454 and a UI control 456. The UI control 454 can be selectableto cause the computing device 102 to display additional connectionmanagement controls 452 (in the event that additional connections 130exist). Thus, selection of the UI control 454 can cause the computingdevice 102 to display additional connection management controls 452 thatcan be selected to manage the associated connections 130 as explainedabove. The UI control 456 can be selectable to exit the connectionmanagement screen 450. Because additional or alternative controls can beincluded in the screen display 400G, it should be understood that theexample embodiment shown in FIG. 4G is illustrative and therefore shouldnot be construed as being limiting in any way.

Turning now to FIG. 5, additional details of the network 104 areillustrated, according to an illustrative embodiment. The network 104includes a cellular network 502, a packet data network 504, for example,the Internet, and a circuit switched network 506, for example, apublicly switched telephone network (“PSTN”). The cellular network 502includes various components such as, but not limited to, basetransceiver stations (“BTSs”), Node-B's or e-Node-B's, base stationcontrollers (“BSCs”), radio network controllers (“RNCs”), mobileswitching centers (“MSCs”), mobile management entities (“MMEs”), shortmessage service centers (“SMSCs”), multimedia messaging service centers(“MMSCs”), home location registers (“HLRs”), home subscriber servers(“HSSs”), visitor location registers (“VLRs”), charging platforms,billing platforms, voicemail platforms, GPRS core network components,location service nodes, an IP Multimedia Subsystem (“IMS”), and thelike. The cellular network 502 also includes radios and nodes forreceiving and transmitting voice, data, and combinations thereof to andfrom radio transceivers, networks, the packet data network 504, and thecircuit switched network 506.

A mobile communications device 508, such as, for example, a cellulartelephone, a user equipment, a mobile terminal, a PDA, a laptopcomputer, a handheld computer, and combinations thereof, can beoperatively connected to the cellular network 502. The cellular network502 can be configured as a 2G GSM network and can provide datacommunications via GPRS and/or EDGE. Additionally, or alternatively, thecellular network 502 can be configured as a 3G UMTS network and canprovide data communications via the HSPA protocol family, for example,HSDPA, EUL (also referred to as HSUPA), and HSPA+. The cellular network502 also is compatible with 4G mobile communications standards as wellas evolved and future mobile standards.

The packet data network 504 includes various devices, for example,servers, computers, databases, and other devices in communication withone another, as is generally known. The packet data network 504 devicesare accessible via one or more network links. The servers often storevarious files that are provided to a requesting device such as, forexample, a computer, a terminal, a smartphone, or the like. Typically,the requesting device includes software (a “browser”) for executing aweb page in a format readable by the browser or other software. Otherfiles and/or data may be accessible via “links” in the retrieved files,as is generally known. In some embodiments, the packet data network 504includes or is in communication with the Internet. The circuit switchednetwork 506 includes various hardware and software for providing circuitswitched communications. The circuit switched network 506 may include,or may be, what is often referred to as a plain old telephone system(POTS). The functionality of a circuit switched network 506 or othercircuit-switched network are generally known and will not be describedherein in detail.

The illustrated cellular network 502 is shown in communication with thepacket data network 504 and a circuit switched network 506, though itshould be appreciated that this is not necessarily the case. One or moreInternet-capable devices 510, for example, a PC, a laptop, a portabledevice, or another suitable device, can communicate with one or morecellular networks 502, and devices connected thereto, through the packetdata network 504. It also should be appreciated that theInternet-capable device 510 can communicate with the packet data network504 through the circuit switched network 506, the cellular network 502,and/or via other networks (not illustrated).

As illustrated, a communications device 512, for example, a telephone,facsimile machine, modem, computer, or the like, can be in communicationwith the circuit switched network 506, and therethrough to the packetdata network 504 and/or the cellular network 502. It should beappreciated that the communications device 512 can be anInternet-capable device, and can be substantially similar to theInternet-capable device 510. In the specification, the network 104 isused to refer broadly to any combination of the networks 502, 504, 506.It should be appreciated that substantially all of the functionalitydescribed with reference to the network 104 can be performed by thecellular network 502, the packet data network 504, and/or the circuitswitched network 506, alone or in combination with other networks,network elements, and the like.

FIG. 6 is a block diagram illustrating a computer system 600 configuredto provide the functionality described herein for providing and/orinteracting with a connection management service 110, in accordance withvarious embodiments of the concepts and technologies disclosed herein.The computer system 600 includes a processing unit 602, a memory 604,one or more user interface devices 606, one or more input/output (“I/O”)devices 608, and one or more network devices 610, each of which isoperatively connected to a system bus 612. The bus 612 enablesbi-directional communication between the processing unit 602, the memory604, the user interface devices 606, the I/O devices 608, and thenetwork devices 610.

The processing unit 602 may be a standard central processor thatperforms arithmetic and logical operations, a more specific purposeprogrammable logic controller (“PLC”), a programmable gate array, orother type of processor known to those skilled in the art and suitablefor controlling the operation of the server computer. As used herein,the word “processor” and/or the phrase “processing unit” when used withregard to any architecture or system can include multiple processors orprocessing units distributed across and/or operating in parallel in asingle machine or in multiple machines. Furthermore, processors and/orprocessing units can be used to support virtual processing environments.Processors and processing units also can include state machines,application-specific integrated circuits (“ASICs”), combinationsthereof, or the like. Because processors and/or processing units aregenerally known, the processors and processing units disclosed hereinwill not be described in further detail herein.

The memory 604 communicates with the processing unit 602 via the systembus 612. In some embodiments, the memory 604 is operatively connected toa memory controller (not shown) that enables communication with theprocessing unit 602 via the system bus 612. The memory 604 includes anoperating system 614 and one or more program modules 616. The operatingsystem 614 can include, but is not limited to, members of the WINDOWS,WINDOWS CE, and/or WINDOWS MOBILE families of operating systems fromMICROSOFT CORPORATION, the LINUX family of operating systems, theSYMBIAN family of operating systems from SYMBIAN LIMITED, the BREWfamily of operating systems from QUALCOMM CORPORATION, the MAC OS, iOS,and/or LEOPARD families of operating systems from APPLE CORPORATION, theFREEBSD family of operating systems, the SOLARIS family of operatingsystems from ORACLE CORPORATION, other operating systems, and the like.

The program modules 616 may include various software and/or programmodules described herein. In some embodiments, for example, the programmodules 616 include the connection management application 108 and/or theconnection management service 110. These and/or other programs can beembodied in computer-readable media containing instructions that, whenexecuted by the processing unit 602, perform one or more of the methods200 or 300 described in detail above with respect to FIGS. 2-3 and/orother functionality as illustrated and described herein. It can beappreciated that, at least by virtue of the instructions embodying themethods 200 or 300 and/or other functionality illustrated and describedherein being stored in the memory 604 and/or accessed and/or executed bythe processing unit 602, the computer system 600 is a special-purposecomputing system that can facilitate providing the functionalityillustrated and described herein. According to embodiments, the programmodules 616 may be embodied in hardware, software, firmware, or anycombination thereof. Although not shown in FIG. 6, it should beunderstood that the memory 604 also can be configured to store theconnection data 114, the connection management data 116, the data 122,and/or other data, if desired.

By way of example, and not limitation, computer-readable media mayinclude any available computer storage media or communication media thatcan be accessed by the computer system 600. Communication media includescomputer-readable instructions, data structures, program modules, orother data in a modulated data signal such as a carrier wave or othertransport mechanism and includes any delivery media. The term “modulateddata signal” means a signal that has one or more of its characteristicschanged or set in a manner as to encode information in the signal. Byway of example, and not limitation, communication media includes wiredmedia such as a wired network or direct-wired connection, and wirelessmedia such as acoustic, RF, infrared and other wireless media.Combinations of the any of the above should also be included within thescope of computer-readable media.

Computer storage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules, or other data. Computer storage media includes, but isnot limited to, RAM, ROM, Erasable Programmable ROM (“EPROM”),Electrically Erasable Programmable ROM (“EEPROM”), flash memory or othersolid state memory technology, CD-ROM, digital versatile disks (“DVD”),or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store the desired information and which can beaccessed by the computer system 600. In the claims, the phrase “computerstorage medium” and variations thereof does not include waves or signalsper se and/or communication media.

The user interface devices 606 may include one or more devices withwhich a user accesses the computer system 600. The user interfacedevices 606 may include, but are not limited to, computers, servers,personal digital assistants, cellular phones, or any suitable computingdevices. The I/O devices 608 enable a user to interface with the programmodules 616. In one embodiment, the I/O devices 608 are operativelyconnected to an I/O controller (not shown) that enables communicationwith the processing unit 602 via the system bus 612. The I/O devices 608may include one or more input devices, such as, but not limited to, akeyboard, a mouse, or an electronic stylus. Further, the I/O devices 608may include one or more output devices, such as, but not limited to, adisplay screen or a printer.

The network devices 610 enable the computer system 600 to communicatewith other networks or remote systems via a network, such as the network104. Examples of the network devices 610 include, but are not limitedto, a modem, a radio frequency (“RF”) or infrared (“IR”) transceiver, atelephonic interface, a bridge, a router, or a network card. The network104 may include a wireless network such as, but not limited to, aWireless Local Area Network (“WLAN”) such as a WI-FI network, a WirelessWide Area Network (“WWAN”), a Wireless Personal Area Network (“WPAN”)such as BLUETOOTH, a Wireless Metropolitan Area Network (“WMAN”) such aWiMAX network, or a cellular network. Alternatively, the network 104 maybe a wired network such as, but not limited to, a Wide Area Network(“WAN”) such as the Internet, a Local Area Network (“LAN”) such as theEthernet, a wired Personal Area Network (“PAN”), or a wired MetropolitanArea Network (“MAN”).

Turning now to FIG. 7, an illustrative mobile device 700 and componentsthereof will be described. In some embodiments, the computing device 102described above with reference to FIGS. 1-5 can be configured as and/orcan have an architecture similar or identical to the mobile device 700described herein in FIG. 7. It should be understood, however, that thecomputing device 102 may or may not include the functionality describedherein with reference to FIG. 7. While connections are not shown betweenthe various components illustrated in FIG. 7, it should be understoodthat some, none, or all of the components illustrated in FIG. 7 can beconfigured to interact with one another to carry out various devicefunctions. In some embodiments, the components are arranged so as tocommunicate via one or more busses (not shown). Thus, it should beunderstood that FIG. 7 and the following description are intended toprovide a general understanding of a suitable environment in whichvarious aspects of embodiments can be implemented, and should not beconstrued as being limiting in any way.

As illustrated in FIG. 7, the mobile device 700 can include a display702 for displaying data. According to various embodiments, the display702 can be configured to display various graphical user interface(“GUI”) elements such as, for example, connection information, accountinformation, the various user interfaces shown in FIGS. 4A-4G, text,images, video, virtual keypads and/or keyboards, messaging data,notification messages, metadata, internet content, device status, time,date, calendar data, device preferences, map and location data,combinations thereof, and/or the like. The mobile device 700 also caninclude a processor 704 and a memory or other data storage device(“memory”) 706. The processor 704 can be configured to process dataand/or can execute computer-executable instructions stored in the memory706. The computer-executable instructions executed by the processor 704can include, for example, an operating system 708, one or moreapplications 710 such as the connection management application 108,other computer-executable instructions stored in a memory 706, or thelike. In some embodiments, the applications 710 also can include a UIapplication (not illustrated in FIG. 7).

The UI application can interface with the operating system 708, such asthe operating system 106 shown in FIG. 1, to facilitate user interactionwith functionality and/or data stored at the mobile device 700 and/orstored elsewhere. In some embodiments, the operating system 708 caninclude a member of the SYMBIAN OS family of operating systems fromSYMBIAN LIMITED, a member of the WINDOWS MOBILE OS and/or WINDOWS PHONEOS families of operating systems from MICROSOFT CORPORATION, a member ofthe PALM WEBOS family of operating systems from HEWLETT PACKARDCORPORATION, a member of the BLACKBERRY OS family of operating systemsfrom RESEARCH IN MOTION LIMITED, a member of the IOS family of operatingsystems from APPLE INC., a member of the ANDROID OS family of operatingsystems from GOOGLE INC., and/or other operating systems. Theseoperating systems are merely illustrative of some contemplated operatingsystems that may be used in accordance with various embodiments of theconcepts and technologies described herein and therefore should not beconstrued as being limiting in any way.

The UI application can be executed by the processor 704 to aid a user inentering content, entering identification information for one or moreresources 118, scanning visual indicia associated with resources 118,obtaining connection information, selecting connections 130, configuringconnections 130, configuring settings, manipulating address book contentand/or settings, multimode interaction, interacting with otherapplications 710, and otherwise facilitating user interaction with theoperating system 708, the applications 710, and/or other types orinstances of data 712 that can be stored at the mobile device 700. Thedata 712 can include, for example, the connection management application108 and/or the connection management data 116, other data, otherapplications, and/or program modules. According to various embodiments,the data 712 can include, for example, presence applications, visualvoice mail applications, messaging applications, text-to-speech andspeech-to-text applications, add-ons, plug-ins, email applications,music applications, video applications, camera applications,location-based service applications, power conservation applications,game applications, productivity applications, entertainmentapplications, enterprise applications, combinations thereof, and thelike. The applications 710, the data 712, and/or portions thereof can bestored in the memory 706 and/or in a firmware 714, and can be executedby the processor 704.

It can be appreciated that, at least by virtue of storage of theinstructions corresponding to the applications 710 and/or otherinstructions embodying other functionality illustrated and describedherein in the memory 706, and/or by virtue of the instructionscorresponding to the applications 710 and/or other instructionsembodying other functionality illustrated and described herein beingaccessed and/or executed by the processor 704, the mobile device 700 isa special-purpose mobile device that can facilitate providing thefunctionality illustrated and described herein. The firmware 714 alsocan store code for execution during device power up and power downoperations. It can be appreciated that the firmware 714 can be stored ina volatile or non-volatile data storage device including, but notlimited to, the memory 706 and/or a portion thereof

The mobile device 700 also can include an input/output (“I/O”) interface716. The I/O interface 716 can be configured to support the input/outputof data such as location information, connection data 114, connectionmanagement data 116, user information, organization information,presence status information, user IDs, passwords, and applicationinitiation (start-up) requests. In some embodiments, the I/O interface716 can include a hardwire connection such as a universal serial bus(“USB”) port, a mini-USB port, a micro-USB port, an audio jack, a PS2port, an IEEE 1394 (“FIREWIRE”) port, a serial port, a parallel port, anEthernet (RJ45 or RJ48) port, a telephone (RJ11 or the like) port, aproprietary port, combinations thereof, or the like. In someembodiments, the mobile device 700 can be configured to synchronize withanother device to transfer content to and/or from the mobile device 700.In some embodiments, the mobile device 700 can be configured to receiveupdates to one or more of the applications 710 via the I/O interface716, though this is not necessarily the case. In some embodiments, theI/O interface 716 accepts I/O devices such as keyboards, keypads, mice,interface tethers, printers, plotters, external storage,touch/multi-touch screens, touch pads, trackballs, joysticks,microphones, remote control devices, displays, projectors, medicalequipment (e.g., stethoscopes, heart monitors, and other health metricmonitors), modems, routers, external power sources, docking stations,combinations thereof, and the like. It should be appreciated that theI/O interface 716 may be used for communications between the mobiledevice 700 and a network device or local device.

The mobile device 700 also can include a communications component 718.The communications component 718 can be configured to interface with theprocessor 704 to facilitate wired and/or wireless communications withone or more networks such as the network 104 described herein. In someembodiments, other networks include networks that utilize non-cellularwireless technologies such as WI-FI or WIMAX. In some embodiments, thecommunications component 718 includes a multimode communicationssubsystem for facilitating communications via the cellular network andone or more other networks.

The communications component 718, in some embodiments, includes one ormore transceivers. The one or more transceivers, if included, can beconfigured to communicate over the same and/or different wirelesstechnology standards with respect to one another. For example, in someembodiments one or more of the transceivers of the communicationscomponent 718 may be configured to communicate using GSM, CDMAONE,CDMA2000, LTE, and various other 2G, 2.5G, 3G, 4G, and greatergeneration technology standards. Moreover, the communications component718 may facilitate communications over various channel access methods(which may or may not be used by the aforementioned standards)including, but not limited to, TDMA, FDMA, W-CDMA, OFDM, SDMA, and thelike.

In addition, the communications component 718 may facilitate datacommunications using GPRS, EDGE, the HSPA protocol family includingHSDPA, EUL or otherwise termed HSDPA, HSPA+, and various other currentand future wireless data access standards. In the illustratedembodiment, the communications component 718 can include a firsttransceiver (“TxRx”) 720A that can operate in a first communicationsmode (e.g., GSM). The communications component 718 also can include anN^(th) transceiver (“TxRx”) 720N that can operate in a secondcommunications mode relative to the first transceiver 720A (e.g., UMTS).While two transceivers 720A-N (hereinafter collectively and/orgenerically referred to as “transceivers 720”) are shown in FIG. 7, itshould be appreciated that less than two, two, and/or more than twotransceivers 720 can be included in the communications component 718.

The communications component 718 also can include an alternativetransceiver (“Alt TxRx”) 722 for supporting other types and/or standardsof communications. According to various contemplated embodiments, thealternative transceiver 722 can communicate using various communicationstechnologies such as, for example, WI-FI, WIMAX, BLUETOOTH, infrared,infrared data association (“IRDA”), near field communications (“NFC”),other RF technologies, combinations thereof, and the like. In someembodiments, the communications component 718 also can facilitatereception from terrestrial radio networks, digital satellite radionetworks, internet-based radio service networks, combinations thereof,and the like. The communications component 718 can process data from anetwork such as the Internet, an intranet, a broadband network, a WI-FIhotspot, an Internet service provider (“ISP”), a digital subscriber line(“DSL”) provider, a broadband provider, combinations thereof, or thelike.

The mobile device 700 also can include one or more sensors 724. Thesensors 724 can include temperature sensors, light sensors, air qualitysensors, movement sensors, orientation sensors, noise sensors, proximitysensors, or the like. As such, it should be understood that the sensors724 can include, but are not limited to, accelerometers, magnetometers,gyroscopes, infrared sensors, noise sensors, microphones, combinationsthereof, or the like. Additionally, audio capabilities for the mobiledevice 700 may be provided by an audio I/O component 726. The audio I/Ocomponent 726 of the mobile device 700 can include one or more speakersfor the output of audio signals, one or more microphones for thecollection and/or input of audio signals, and/or other audio inputand/or output devices.

The illustrated mobile device 700 also can include a subscriber identitymodule (“SIM”) system 728. The SIM system 728 can include a universalSIM (“USIM”), a universal integrated circuit card (“UICC”) and/or otheridentity devices. The SIM system 728 can include and/or can be connectedto or inserted into an interface such as a slot interface 730. In someembodiments, the slot interface 730 can be configured to acceptinsertion of other identity cards or modules for accessing various typesof networks. Additionally, or alternatively, the slot interface 730 canbe configured to accept multiple subscriber identity cards. Becauseother devices and/or modules for identifying users and/or the mobiledevice 700 are contemplated, it should be understood that theseembodiments are illustrative, and should not be construed as beinglimiting in any way.

The mobile device 700 also can include an image capture and processingsystem 732 (“image system”). The image system 732 can be configured tocapture or otherwise obtain photos, videos, and/or other visualinformation. As such, the image system 732 can include cameras, lenses,charge-coupled devices (“CCDs”), combinations thereof, or the like. Themobile device 700 may also include a video system 734. The video system734 can be configured to capture, process, record, modify, and/or storevideo content. Photos and videos obtained using the image system 732 andthe video system 734, respectively, may be added as message content toan MMS message, email message, and sent to another mobile device. Thevideo and/or photo content also can be shared with other devices viavarious types of data transfers via wired and/or wireless communicationdevices as described herein.

The mobile device 700 also can include one or more location components736. The location components 736 can be configured to send and/orreceive signals to determine a geographic location of the mobile device700. According to various embodiments, the location components 736 cansend and/or receive signals from global positioning system (“GPS”)devices, assisted-GPS (“A-GPS”) devices, WI-FI/WIMAX and/or cellularnetwork triangulation data, combinations thereof, and the like. Thelocation component 736 also can be configured to communicate with thecommunications component 718 to retrieve triangulation data fordetermining a location of the mobile device 700. In some embodiments,the location component 736 can interface with cellular network nodes,telephone lines, satellites, location transmitters and/or beacons,wireless network transmitters and receivers, combinations thereof, andthe like. In some embodiments, the location component 736 can includeand/or can communicate with one or more of the sensors 724 such as acompass, an accelerometer, and/or a gyroscope to determine theorientation of the mobile device 700. Using the location component 736,the mobile device 700 can generate and/or receive data to identify itsgeographic location, or to transmit data used by other devices todetermine the location of the mobile device 700. The location component736 may include multiple components for determining the location and/ororientation of the mobile device 700.

The illustrated mobile device 700 also can include a power source 738.The power source 738 can include one or more batteries, power supplies,power cells, and/or other power subsystems including alternating current(“AC”) and/or direct current (“DC”) power devices. The power source 738also can interface with an external power system or charging equipmentvia a power I/O component 740. Because the mobile device 700 can includeadditional and/or alternative components, the above embodiment should beunderstood as being illustrative of one possible operating environmentfor various embodiments of the concepts and technologies describedherein. The described embodiment of the mobile device 700 isillustrative, and should not be construed as being limiting in any way.

Turning now to FIG. 8, a cloud computing platform 800 capable ofimplementing aspects of the concepts and technologies disclosed hereinwill be described, according to an illustrative embodiment. In someembodiments of the concepts and technologies disclosed herein, theconnection management service 110, the server computer 112, theresources 118, and/or the third party 136 can be implemented, at leastin part, on the cloud computing platform 800. Those skilled in the artwill appreciate that the illustrated cloud computing platform 800 is asimplification of but one possible implementation of an illustrativecloud computing environment, and as such, the cloud computing platform800 should not be construed as limiting in any way.

The illustrated cloud computing platform 800 includes a hardwareresource layer 802, a virtualization/control layer 804, and a virtualresource layer 806 that work together to perform operations as will bedescribed in detail herein. While connections are shown between some ofthe components illustrated in FIG. 8, it should be understood that some,none, or all of the components illustrated in FIG. 8 can be configuredto interact with one other to carry out various functions describedherein. In some embodiments, the components are arranged so as tocommunicate via one or more networks (not shown). Thus, it should beunderstood that FIG. 8 and the following description are intended toprovide a general understanding of a suitable environment in whichvarious aspects of embodiments can be implemented, and should not beconstrued as being limiting in any way.

The hardware resource layer 802 provides hardware resources, which, inthe illustrated embodiment, include one or more compute resources 808,one or more memory resources 810, and one or more other resources 812.The compute resource(s) 808 can include one or more hardware componentsthat perform computations to process data, and/or to executecomputer-executable instructions of one or more application programs,operating systems, and/or other software. The compute resources 808 caninclude one or more central processing units (“CPUs”) configured withone or more processing cores. The compute resources 808 can include oneor more graphics processing unit (“GPU”) configured to accelerateoperations performed by one or more CPUs, and/or to perform computationsto process data, and/or to execute computer-executable instructions ofone or more application programs, operating systems, and/or othersoftware that may or may not include instructions particular to graphicscomputations. In some embodiments, the compute resources 808 can includeone or more discrete GPUs. In some other embodiments, the computeresources 808 can include CPU and GPU components that are configured inaccordance with a co-processing CPU/GPU computing model, wherein thesequential part of an application executes on the CPU and thecomputationally-intensive part is accelerated by the GPU. The computeresources 808 can include one or more system-on-chip (“SoC”) componentsalong with one or more other components, including, for example, one ormore of the memory resources 810, and/or one or more of the otherresources 812.

In some embodiments, the compute resources 808 can be or can include oneor more SNAPDRAGON SoCs, available from QUALCOMM of San Diego, Calif.;one or more TEGRA SoCs, available from NVIDIA of Santa Clara, Calif.;one or more HUMMINGBIRD SoCs, available from SAMSUNG of Seoul, SouthKorea; one or more Open Multimedia Application Platform (“OMAP”) SoCs,available from TEXAS INSTRUMENTS of Dallas, Tex.; one or more customizedversions of any of the above SoCs; and/or one or more proprietary SoCs.The compute resources 808 can be or can include one or more hardwarecomponents architected in accordance with an ARM architecture, availablefor license from ARM HOLDINGS of Cambridge, United Kingdom.Alternatively, the compute resources 808 can be or can include one ormore hardware components architected in accordance with an x86architecture, such an architecture available from INTEL CORPORATION ofMountain View, Calif., and others. Those skilled in the art willappreciate the implementation of the compute resources 808 can utilizevarious computation architectures, and as such, the compute resources808 should not be construed as being limited to any particularcomputation architecture or combination of computation architectures,including those explicitly disclosed herein.

The memory resource(s) 810 can include one or more hardware componentsthat perform storage operations, including temporary or permanentstorage operations. In some embodiments, the memory resource(s) 810include volatile and/or non-volatile memory implemented in any method ortechnology for storage of information such as computer-readableinstructions, data structures, program modules, or other data disclosedherein. Computer storage media includes, but is not limited to, randomaccess memory (“RAM”), read-only memory (“ROM”), Erasable ProgrammableROM (“EPROM”), Electrically Erasable Programmable ROM (“EEPROM”), flashmemory or other solid state memory technology, CD-ROM, digital versatiledisks (“DVD”), or other optical storage, magnetic cassettes, magnetictape, magnetic disk storage or other magnetic storage devices, or anyother medium which can be used to store data and which can be accessedby the compute resources 808.

The other resource(s) 812 can include any other hardware resources thatcan be utilized by the compute resources(s) 808 and/or the memoryresource(s) 810 to perform operations described herein. The otherresource(s) 812 can include one or more input and/or output processors(e.g., network interface controller or wireless radio), one or moremodems, one or more codec chipset, one or more pipeline processors, oneor more fast Fourier transform (“FFT”) processors, one or more digitalsignal processors (“DSPs”), one or more speech synthesizers, and/or thelike.

The hardware resources operating within the hardware resource layer 802can be virtualized by one or more virtual machine monitors (“VMMs”)814A-814N (also known as “hypervisors;” hereinafter “VMMs 814”)operating within the virtualization/control layer 804 to manage one ormore virtual resources that reside in the virtual resource layer 806.The VMMs 814 can be or can include software, firmware, and/or hardwarethat alone or in combination with other software, firmware, and/orhardware, manages one or more virtual resources operating within thevirtual resource layer 806.

The virtual resources operating within the virtual resource layer 806can include abstractions of at least a portion of the compute resources808, the memory resources 810, the other resources 812, or anycombination thereof. These abstractions are referred to herein asvirtual machines (“VMs”). In the illustrated embodiment, the virtualresource layer 806 includes VMs 816A-816N (hereinafter “VMs 816”).

Based on the foregoing, it should be appreciated that systems andmethods for a connection management service have been disclosed herein.Although the subject matter presented herein has been described inlanguage specific to computer structural features, methodological andtransformative acts, specific computing machinery, and computer-readablemedia, it is to be understood that the concepts and technologiesdisclosed herein are not necessarily limited to the specific features,acts, or media described herein. Rather, the specific features, acts andmediums are disclosed as example forms of implementing the concepts andtechnologies disclosed herein.

The subject matter described above is provided by way of illustrationonly and should not be construed as limiting. Various modifications andchanges may be made to the subject matter described herein withoutfollowing the example embodiments and applications illustrated anddescribed, and without departing from the true spirit and scope of theembodiments of the concepts and technologies disclosed herein.

1. A system comprising: a processor; and a memory that storescomputer-executable instructions that, when executed by the processor,cause the processor to perform operations comprising detecting a requestto create a connection between a first resource and a second resource,wherein the request is received from a computing device, obtaining, fromthe computing device, identification of the first resource,authenticating, based on obtaining the identification of the firstresource, that the first resource is located in a proximity of thecomputing device, wherein the second resource is not located in theproximity of the computing device, obtaining connection information forthe connection between the first resource and the second resource, andtriggering creation of the connection using the connection information.2. The system of claim 1, wherein the identification of the firstresource is obtained from the computing device.
 3. The system of claim2, wherein the computing device obtains the identification of the firstresource by scanning visual indicia located on the first resource usinga camera of the computing device.
 4. The system of claim 1, wherein theidentification of the second resource comprises a globally uniqueidentifier, and wherein the identification of the second resource isobtained from the computing device.
 5. The system of claim 1, whereinthe connection information represents a plurality of connections betweenthe first resource and the second resource, and wherein triggering theconnection comprises: obtaining a selection of a particular connectionfrom the plurality of connections, wherein triggering the creation ofthe connection comprises triggering creation of the particularconnection.
 6. The system of claim 1, wherein the computer-executableinstructions, when executed by the processor, cause the processor toperform operations further comprising: in response to detecting afailure in the creation of the connection, engaging a third party tocomplete the connection.
 7. The system of claim 1, wherein thecomputer-executable instructions, when executed by the processor, causethe processor to perform operations further comprising: in response todetecting a failure in the creation of the connection, sendingstep-by-step instructions to the computing device to complete theconnection.
 8. The system of claim 1, wherein the connection informationidentifies operations to be performed to create the connection, andwherein the first resource and the second resource exchange data via theconnection.
 9. A method comprising: detecting, at a server computercomprising a processor, a request to create a connection between a firstresource and a second resource, wherein the request is received from acomputing device; obtaining, by the processor and from the computingdevice, identification of the first resource; authenticating, by theprocessor and based on obtaining the identification of the firstresource, that the first resource is located in a proximity of thecomputing device, wherein the second resource is not located in theproximity of the computing device; obtaining, by the processor,connection information for the connection between the first resource andthe second resource; and triggering, by the processor, creation of theconnection using the connection information.
 10. The method of claim 9,wherein the identification of the first resource is obtained from thecomputing device, and wherein the computing device obtains theidentification of the first resource by scanning visual indicia locatedon the first resource using a camera of the computing device.
 11. Themethod of claim 9, wherein the identification of the second resourcecomprises a globally unique identifier, and wherein the identificationof the second resource is obtained from the computing device.
 12. Themethod of claim 10, wherein the connection information represents aplurality of connections between the first resource and the secondresource, and wherein triggering the connection comprises: obtaining aselection of a particular connection from the plurality of connections,wherein triggering the creation of the connection comprises triggeringcreation of the particular connection.
 13. The method of claim 9,further comprising: in response to detecting a failure in the creationof the connection, engaging a third party to complete the connection.14. The method of claim 9, further comprising: in response to detectinga failure in the creation of the connection, sending step-by-stepinstructions to the computing device to complete the connection.
 15. Acomputer storage medium having stored thereon computer-executableinstructions that, when executed by a processor, cause the processor toperform operations comprising: detecting a request to create aconnection between a first resource and a second resource, wherein therequest is received from a computing device; obtaining, from thecomputing device, identification of the first resource; authenticating,based on obtaining the identification of the first resource, that thefirst resource is located in a proximity of the computing device,wherein the second resource is not located in the proximity of thecomputing device; obtaining connection information for the connectionbetween the first resource and the second resource; and triggeringcreation of the connection using the connection information.
 16. Thecomputer storage medium of claim 15, wherein the identification of thefirst resource is obtained from the computing device, and wherein thecomputing device obtains the identification of the first resource byscanning visual indicia located on the first resource using a camera ofthe computing device.
 17. The computer storage medium of claim 15,wherein the identification of the second resource comprises a globallyunique identifier, and wherein the identification of the second resourceis obtained from the computing device.
 18. The computer storage mediumof claim 15, wherein the connection information represents a pluralityof connections between the first resource and the second resource, andwherein triggering the connection comprises: obtaining a selection of aparticular connection from the plurality of connections, whereintriggering the creation of the connection comprises triggering creationof the particular connection.
 19. The computer storage medium of claim15, wherein the computer-executable instructions, when executed by theprocessor, cause the processor to perform operations further comprising:in response to detecting a failure in the creation of the connection,engaging a third party to complete the connection.
 20. The computerstorage medium of claim 15, wherein the computer-executableinstructions, when executed by the processor, cause the processor toperform operations further comprising: in response to detecting afailure in the creation of the connection, sending step-by-stepinstructions to the computing device to complete the connection.